Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Update control position when form is centered
Message
 
 
To
09/06/2015 20:06:15
General information
Forum:
Visual FoxPro
Category:
Other
Environment versions
Visual FoxPro:
VFP 9 SP2
OS:
Windows Server 2012
Network:
Windows 2008 Server
Database:
MS SQL Server
Application:
Web
Miscellaneous
Thread ID:
01620818
Message ID:
01620824
Views:
45
>>I have a Date Control that I use everywhere in the application. The control is a container with a textbox and a button. When user clicks on the button the Calendar pops up for user to select a date (I am sure everybody has these controls). The Calendar shows right below the container, based on the container (Date Control) position. This works everywhere but on the form that has Auto Centered set to .T. In this case the Calendar pops up in the position where the form would be opened if not for the Auto Centered.
>>
>>How do I update the position of all controls on the form set to Auto Center?
>
>One thing I've done in the past when I want something to pop up at a fixed position relative to something else, is to pass the desired coordinates to the invoking call. Suppose you want the top left of the calendar to always appear at the bottom left corner of the container (i.e. the Parent of the button):
>
>* Button.Click()
>ShowCalendar( This.Parent.Left, This.Parent.Top + This.Parent.Height )
>
>* ShowCalendar()
>* Create the object
>* Set its .Left and .Top properties to the passed values
>* Show it
>
Similarly, you could just pass in a reference to This.Parent, and let ShowCalendar() do all the arithmetic.

This is essence what my is doing; passing the Parent.left and .top to the ShowCalendar. But for some reasons these values are "wrong". I looked in the debugger and these values (Parent.left and Parent.right) are what they would be if the entire form was opened in the upper left corner. But I am opening it Centered. This is what I asked the question (this thread) to see what I need to do after the form is centered.
Thank you.
"The creative process is nothing but a series of crises." Isaac Bashevis Singer
"My experience is that as soon as people are old enough to know better, they don't know anything at all." Oscar Wilde
"If a nation values anything more than freedom, it will lose its freedom; and the irony of it is that if it is comfort or money that it values more, it will lose that too." W.Somerset Maugham
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform