Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Label.AutoSize
Message
From
16/04/2008 12:46:46
 
 
To
16/04/2008 12:33:02
General information
Forum:
Visual FoxPro
Category:
Coding, syntax & commands
Title:
Environment versions
Visual FoxPro:
VFP 8 SP1
Miscellaneous
Thread ID:
01310962
Message ID:
01311195
Views:
26
Rich,

I think vfp only updates the width when it's not busy
>lcOldCaption = This.label1.caption ---> "Action Text"
>lnOldWidth = This.label1.Width -------> 57
>This.label1.Caption = tcCaption ------> "Update Chassis Information"

=INKEY(.0001)  && may help, or a doevents 

>lnNewWidth = This.label1.Width -------> 57 ??????????
>This.Width = This.Width + (lnNewWidth  - lnOldWidth)
______________________
>I tried this and got the same result, even with the debugger turned on. Maybe my basic understanding is flawed.
>
>My assumption was that if the textbox AutoSize is set to .T. then the textbox will resize whenever the caption changes. If this is not correct, then is there something else I must do (beside try to calculate the width of the control manually) to reset the width? Right now, when I run through the debugger I see
>* Method SetCaption
>LPARAMETERS tcCaption
>lcOldCaption = This.label1.caption ---> "Action Text"
>lnOldWidth = This.label1.Width -------> 57
>This.label1.Caption = tcCaption ------> "Update Chassis Information"
>lnNewWidth = This.label1.Width -------> 57 ??????????
>This.Width = This.Width + (lnNewWidth  - lnOldWidth)
>
>
>Once again, all help greatly appreciated
>
>>Rich,
>>
>>Create method SetCaption for container class and use it instead of settting label caption directly
>>
>>* Method SetCaption
>>LPARAMETERS tcCaption
>>lnOldWidth = This.label1.Width
>>This.label1.Caption = tcCaption
>>lnNewWidth = This.label1.Width
>>This.Width = This.Width + (lnNewWidth  - lnOldWidth)
>>
>>
>>>I've created a container class. It has a label class inside it. The label class has AutoSize set to TRUE. It also has an Assign method
>>>LPARAMETERS vNewVal
>>>
>>>THIS.CAPTION = m.vNewVal
>>>This.Parent.Width = this.Width + this.Parent.image1.Width + 2
>>>
>>>If I step through this code, the container resizes properly.
>>>
>>>However, without stepping through the code, the Width of the label does not reset when it is given a new value. It retains the width of the label in the class definition.
>>>
>>>I've tried putting This.Refresh and This.Parent.Refresh at various points in the method, but to no avail.
>>>
Gregory
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform