En Visual-FoxPro, les variables ont trois portées possibles:

1) PUBLIC gcToto
Crée une variable publique gcToto et l'initialise à .F.
génère une erreur si la variable gcToto existe déjà

2) PRIVATE pcToto
Cache d'éventuelles instances le la variable pcToto en portée descendante.

Attention PRIVATE ne crée pas d'instance de variable pcToto.
La portée de la variable est définie à partir de son affectation: 

la ligne
PUBLIC gcToto
peut avantageusement être remplacée par les deux lignes
PRIVATE gcToto
gcToto=""   && Initialisation de la portée


3) LOCAL lcToto
Crée une variable locale lcToto et l'initialise à .F.
sa portée est uniquement la procédure ou la méthode où elle est déclarée

Tip Tip Tip !
Si on obtient le message d'erreur n°12 "variable toto inconnue",
et que l'on pense que toto existe, il ne faut surtout pas
transformer toto en variable publique !
Il suffit probablement d'augmenter la portée de toto,
pour qu'elle soit connue dans tout l'objet qui l'utilise.
On créera donc une propriété au niveau de l'objet,
ou, si plusieurs objets ont besoin de toto,
au niveau du conteneur (Form, Grid, Container, ...) 

L'utilisation de toto se fera alors en préfixant par This. ou ThisForm.
This.Toto ou ThisForm.Toto