>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))