Sergey,
Tried it. Your suggestion worked fine. I'm still a step or two away from reaching the "Aha !!! zone".
I'm running a frmTest within my TLform. The TL is named frmMain. In frmMain.Init, I put your ADDPROP() code. I start the exe, running at a screen resolution of 1280x1024. In frmTest, I place the following:
messagebox("_VFP.Width is: " + STR(_VFP.Width))
messagebox("_SCREEN.Width is: " + STR(_SCREEN.Width))
messagebox("frmMain.Width is: " + STRfrmMain.Width))
messagebox("_SCREEN.oTLFName.Width is: " + STR(_SCREEN.oTLFName.Width))
messagebox("_SCREEN.frmMain.Width is: " + str(_SCREEN.frmMain.Width))
So, in summary,
1. There is no VFP function (like PROGRAM(1)) to determine the TLF.
2. I could build my own 'stack' with an array, but unless I'm using it for something else as well, there's not much point.
3. I could DO form topform name oApp.topform linked; but I'd need to name all of my topforms uniformly ('topform')
4. Using ADDPROPERTY() to the TL form, I can access the TL's properties in a class.
5. Possible AHA! Since I'll most likely have to write a formTL_dr class to handle my dynamic resizing, I could add the ADDPROP code to the TL class,
or just add it as a property in the designer. Hmm.... Thanks everybody!
>Sergey,
>
>Thanks for your prompt reply. I'll try this out. But I thought _SCREEN was only available to apps designed with SHOWWINDOW=0 ?
>Also, if _SCREEN.width returned the incorrect value, wouldn't _SCREEN.OTlfName.width give me the same?
>Give me a sec, and I'll try it.
>
>>James,
>>
>>What about adding following code to the init of top level form?
>>
>>_SCREEN.AddProperty("oTFLName", THISFORM)
>>
>>After that you can reference it as _SCREEN.oTflName
>>
>>>Hope someone can help me here. I know enough to be dangerous, as they say. Here's my question:
>>>
>>>I'm taking my first stab at a top level form application, rather than the "In Screen (Default)" type. I'm playing around with dynamically resizing (the file examples and the Jan 99 issue of FoxproAdvisor were very helpful, thanks). I'm trying to find the right command for determining the name of the top level form, from within the application. I tried using _SCREEN, _VFP, and APPLICATION, but no joy. So far, I'm able to get it by using the following code:
>>>
>>>
>>>FOR EACH oForm IN APPLICATION.FORMS
>>> IF oForm.ShowWindow = 2
>>> oTLFName=oForm
>>> EXIT
>>> ENDIF
>>>ENDFOR
>>>
>>>IF TYPE("oTLFName")="O"
>>> * I can now refer to it's properties, i.e., oTLFName.Height
>>>ELSE
>>> * ShowWindow property is set to either 0 or 1
>>>ENDIF
>>>
>>>
>>>Is there a cleaner method of accessing TLF properties? I know that I could simply hard code the name, but I would like to create a class from this, if feasible. Thanks in advance...