Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Program(1) name
Message
De
12/06/2015 16:37:52
 
 
Information générale
Forum:
Visual FoxPro
Catégorie:
Autre
Titre:
Versions des environnements
Visual FoxPro:
VFP 9 SP2
OS:
Windows Server 2012
Network:
Windows 2008 Server
Database:
MS SQL Server
Application:
Web
Divers
Thread ID:
01620968
Message ID:
01620972
Vues:
58
>Hi,
>
>I am working on a form with a splitter (shape class that user can move left-right). In the form method Resize I need to determine if this method was called by user resizing the form or user moving the splitter. I see in an example I downloaded from UT that the author used the PROGRAM(1) as follows:
>
>
>LOCAL Caller
>Caller=UPPER(PROGRAM(1))
>DO CASE 
>      CASE Caller = "FORM1.SPLITTER2"
>           *-- User used the Splitteer
>      OTHERWISE
>          *-- User resized the form
>ENDCASE
>
>
>But when I add this code to my form, the Caller always returns the name of the application (MYAPP), regardless of how the form was resized.
>
>Do I use PROGRAM(1) incorrectly? Or is there another method to determine what even changed the form size?
>
>TIA

From the help file for the "PROGRAM()" function:
> When nLevel is omitted, PROGRAM( ) returns the name of the currently executing program.
> If you specify 0 or 1 for nLevel, PROGRAM( ) returns the name of the master program, or the
> highest-level program.
>
> If you specify –1 for nLevel, PROGRAM( ) returns the current program level as a numeric
> value. However, using PROGRAM(–1) in the Command window always returns zero (0).

So to get the name of the caller you could use something like:
Caller = UPPER(PROGRAM(PROGRAM(-1)-1))
instead of:
Caller=UPPER(PROGRAM(1))
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform