Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Obtaining the name of the top level form
Message
De
27/04/2000 15:35:10
James Marshall
SPAWAR Systems Center Charleston NCR
Washington, District de Colombia, États-Unis
 
 
À
27/04/2000 14:19:16
James Marshall
SPAWAR Systems Center Charleston NCR
Washington, District de Colombia, États-Unis
Information générale
Forum:
Visual FoxPro
Catégorie:
Codage, syntaxe et commandes
Divers
Thread ID:
00364196
Message ID:
00364249
Vues:
15
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))                                                   &&  = 1016
messagebox("_SCREEN.Width is: " + STR(_SCREEN.Width))                                     &&  = 1016

messagebox("frmMain.Width is: " + STRfrmMain.Width))                                              &&  = 610
messagebox("_SCREEN.oTLFName.Width is: " + STR(_SCREEN.oTLFName.Width))    &&  = 610

messagebox("_SCREEN.frmMain.Width is: " + str(_SCREEN.frmMain.Width))               &&  = Unknown member
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...
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform