×

Discussion Board

Results 1 to 15 of 20

Hybrid View

  1. #1
    Registered User
    Join Date
    Oct 2010
    Posts
    37

    SetTextL doesn't work!

    hi there,

    I've got a Label in my simple UI application, when I call SetTextL of the Label at run time, nothing changes!!
    here you are my code :

    Code:
    void CTestUIContainer::setStatus(const TDesC& value){
    	iLabel1->SetTextL(value);
    }
    And I call the above method from the CtestUIContainerView::HandleCommandL when a menu get selected as code below :

    Code:
    iTestUIContainer->setStatus(_L("Waiting..."));
    by the way when I put the changing label code at the following method which runs at the initiate loading, it works:


    Code:
    void CTestUIContainer::LayoutControls()
    	{
    	iLabel1->SetExtent( TPoint( 0, 2 ), TSize( 235, 119 ) );
    	iLabel1->SetTextL(_L("Started..."));
    	}

    does anyone know what is wrong with my code? :(

  2. #2
    Nokia Developer Moderator
    Join Date
    Mar 2003
    Location
    Lempäälä/Finland
    Posts
    29,166

    Re: SetTextL doesn't work!

    Try calling DrawNow() after changing the value.

  3. #3
    Registered User
    Join Date
    Oct 2010
    Posts
    37

    Re: SetTextL doesn't work!

    Thanks for your prompt reply,

    I have changed my code to the following one :

    Code:
    void CTestUIContainer::setStatus(const TDesC& value){
    	iLabel1->SetTextL(value);
    	DrawNow();
    }
    but doesn't work again... :(

  4. #4
    Nokia Developer Moderator
    Join Date
    Mar 2003
    Location
    Lempäälä/Finland
    Posts
    29,166

    Re: SetTextL doesn't work!

    Are you implementing the Count components etc. functions in the CTestUIContainer. so the system would know how many controls there are inside the container, and would also be able to get pointers for them to get them drawn correctly ?

  5. #5
    Nokia Developer Champion
    Join Date
    Jun 2008
    Location
    Noida,India
    Posts
    4,006

    Re: SetTextL doesn't work!

    how about this:

    Code:
    void CTestUIContainer::setStatus(const TDesC& value){
    iLabel1->SetExtent( TPoint( 0, 2 ), TSize( 235, 119 ) );
    	iLabel1->SetTextL(value);
    	DrawNow();
    }

  6. #6
    Nokia Developer Moderator
    Join Date
    Mar 2003
    Location
    Lempäälä/Finland
    Posts
    29,166

    Re: SetTextL doesn't work!

    should not really help if ComponentControl(TInt) & CountComponentControls() functions are not implemented in the container.

  7. #7
    Nokia Developer Champion
    Join Date
    Jun 2008
    Location
    Noida,India
    Posts
    4,006

    Re: SetTextL doesn't work!

    Quote Originally Posted by symbianyucca View Post
    should not really help if ComponentControl(TInt) & CountComponentControls() functions are not implemented in the container.
    but i think the label wouldn't be visible first time as well if these functions are not implemented.

  8. #8
    Registered User
    Join Date
    Oct 2010
    Posts
    37

    Re: SetTextL doesn't work!

    Quote Originally Posted by symbianyucca View Post
    should not really help if ComponentControl(TInt) & CountComponentControls() functions are not implemented in the container.
    yes, I've got the mentioned methods in Container :

    Code:
    /**
    * Return the number of controls in the container (override)
    * @return count
    */
    TInt CTestUIContainer::CountComponentControls() const
    	{
    	return ( int ) ELastControl;
    	}
    				
    /**
    * Get the control with the given index (override)
    * @param aIndex Control index [0...n) (limited by #CountComponentControls)
    * @return Pointer to control
    */
    CCoeControl* CTestUIContainer::ComponentControl( TInt aIndex ) const
    	{
    	// [[[ begin generated region: do not modify [Generated Contents]
    	switch ( aIndex )
    		{
    		case ELabel1:
    			return iLabel1;
    		}
    	// ]]] end generated region [Generated Contents]
    	
    	// handle any user controls here...
    	
    	return NULL;
    	}

  9. #9
    Nokia Developer Champion
    Join Date
    Jun 2008
    Location
    Noida,India
    Posts
    4,006

    Re: SetTextL doesn't work!

    have you implemented the SizeChanged() method ?

  10. #10
    Registered User
    Join Date
    Oct 2010
    Posts
    37

    Re: SetTextL doesn't work!

    It doesn't work either :(((((

    Quote Originally Posted by vineet.jain View Post
    how about this:

    Code:
    void CTestUIContainer::setStatus(const TDesC& value){
    iLabel1->SetExtent( TPoint( 0, 2 ), TSize( 235, 119 ) );
    	iLabel1->SetTextL(value);
    	DrawNow();
    }

  11. #11
    Registered User
    Join Date
    Oct 2010
    Posts
    37

    Re: SetTextL doesn't work!

    I've found a point,

    just after changing the label I place a socket accept implementation :

    Code:
    			iTestUIContainer->setStatus(_L("Waiting..."));
    
    			RSocket acceptSock;
    			User::LeaveIfError(acceptSock.Open(iSocketServ));
    			iSocket->Accept(acceptSock, aStatus);
    			User::WaitForRequest(aStatus);
    :

    when I remove the socket part(the red part), it works correctly and change the label, any clue why it behaves this way??!!! and why i cannot change the label when I am waiting for a incoming socket???!!!

Similar Threads

  1. SetTextL problem
    By joteddy123 in forum Symbian User Interface
    Replies: 2
    Last Post: 2009-03-24, 12:27
  2. How to use SetTextL() in CAknSettingItemList
    By saheb04 in forum Symbian
    Replies: 2
    Last Post: 2007-09-20, 06:24
  3. EEikEdwinUserSuppliedText and SetTextL
    By jbylund in forum Symbian User Interface
    Replies: 1
    Last Post: 2005-10-05, 03:23
  4. SetTextL() on target
    By yaront in forum Symbian User Interface
    Replies: 0
    Last Post: 2005-01-24, 19:46
  5. SetTextL()
    By jesusdol in forum Symbian User Interface
    Replies: 1
    Last Post: 2004-01-27, 18:44

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
×