I have 3 simple ways of deciding whether a it should be a property, local or public variable:
1. If the variable should be accessible to all the methods of the form, create a property, example:
Initialize method:
THISFORM.nTotal = 0.0
Method that processes each record:
THISFORM.nTotal = THISFORM.nTotal + TmpList.Amount
Display method:
THISFORM.txtTotal.Value = THISFORM.nTotal
2. If the variable is used only in a single method, declare them using LOCAL command
LOCAL lcName, lnAmount
3. If the variable should be accessible anywhere in your program, declare it using PUBLIC command
PUBLIC gaConns[10, 2], gnMaxConn