[Gambas-user] Checking values in a variable from a Gambas Shell...

sbungay sbungay at ...981...
Mon Feb 5 16:24:12 CET 2007


   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.





More information about the User mailing list