>>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 = PROGRAM(PROGRAM(-1)-1)
I should have read the help first. 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