[Gambas-user] Checking values in a variable from a Gambas Shell...
sbungay
sbungay at ...981...
Tue Feb 6 21:04:11 CET 2007
I kind of thought it was a pipe and event loop servicing issue, it
was the only way I could make sense of the behaviour. Something to keep
in mind when using the Gambas shell to check values in variables.
Steve.
Benoit Minisini wrote:
> On Monday 05 February 2007 16:24, sbungay wrote:
>
>> Applolgies in advance for the length of the post.
>> I noticed an interesting behaviour that I never noticed before, and
>>perhaps it is just the first time I noticed this.
>> A form which instantiates a module level public variable as a new
>>instance of a class populates that variable with data. After the
>>variable has been populated and the form is waiting for more events you
>>are unable to use the Gambas shell to display values that have been
>>stored in the variable.
>> For example lets say we have a class called 'ClassCustomer' and it is
>>defined as follows;
>>
>>' Gambas Class file.
>>PUBLIC LastName AS String
>>PUBLIC FirstName AS String
>>
>>
>>And then we have a form which has an OK and Cancel button on it and some
>>logic in it that goes something like this...
>>
>>'Gambas Class file
>>PUBLIC mCustomer AS NEW ClassCustomer
>>
>>PUBLIC SUB ButtonOK_Click()
>> mCustomer.LastName = "Doe"
>> mCustomer.FirstName = "John"
>>END
>>
>>PUBLIC SUB ButtonCancel_Click()
>> STOP
>>END
>>
>>
>> Set a break point on the second assignment statement in
>>ButtonOK_Click and run the program. Click on OK and when execution stops
>>at the break point open the Gambas shell and type;
>>
>>? mCustomer.LastName
>>Doe
>>
>> No problem there. If we press F5 and let the program continue (the
>>form does not close) and we go back to the Gambas shell and type;
>>
>>? mCustomer.LastName
>>
>> We get nothing. No result... if we type;
>>
>>? FormName.mCustomer.LastName
>>
>> We get nothing again... as if mCustomer has ceased to exist. Clicking
>>on the Cancel button program execution stops (because of the STOP
>>stqtement in the event). Back to the Gambas shell, if we type
>>
>>? mCustomer.LastName
>>Doe
>>
>> I get the expected response. So the data is indeed there.
>>
>>Question
>> Why can't the Gambas shell see the values that are stored in
>>mCustomer when the form in which mCustomer exists is sitting waiting for
>>an event?
>>
>>Steve.
>>
>
>
> The debugger is embedded in the program being debugged, and communicates with
> the IDE with named pipes.
>
> When your program is in the event loop, the debugger cannot be raised, and so
> cannot send to the IDE the value of the expressions you are requested. You
> must stop the program before.
>
> This is just an implementation problem! :-)
>
> Regards,
>
More information about the User
mailing list