Частные переменные в Visual FoxPro
« Назад Пусть переменная, например someVar, создана в основной программе файла d:\Prog.prg в результате выполнения оператора присваивания: someVar = 2.5 Тогда она будет видна в любом программном компоненте, вызываемом из d:\Prog.prg, а также в программных компонентах более низкого уровня. Например: && Файл d:\Prog.prg someVar = 2.5 && Создаем переменную someVar ProcA( ) && Вызов процедуры ProcA procedure ProcA ProcB( ) && Вызов процедуры ProcB endProc && procedure ProcB ? someVar && Напечатает: 2.5 endProc При этом расположенные на разных уровнях программные компоненты могут находиться в разных файлах, например в файлах d:\Prog.prg, d:\ProcA.prg и d:\ProcB.prg: && Файл d:\Prog.prg someVar = 2.5 && Создаем переменную someVar do d:\ProcA && Вызов программы файла d:\ProcA.prg && Файл d:\ProcA.prg && do d:\ProcB && Вызов программы файла d:\ProcB.prg && Файл d:\ProcB.prg && ? someVar && Напечатает: 2.5 Чтобы закрыть переменную программного компонента более высокого уровня в программном компоненте более низкого уровня употребляется команда PRIVATE. Команды PRIVATE VarList…]или PRIVATE ALL [LIKE Skeleton | EXCEPT Skeleton]закрывают указанные переменные программного компонента более высокого уровня. В отличие от команд LOCAL и PUBLIC, команда PRIVATE переменных не создает. Опции и параметры: VarList – список переменных (скалярных и массивов), объявляемых как частные. Имена переменных разделяются запятыми. ALL LIKE Skeleton – объявляются как частные переменные, удовлетворяющие маске Skeleton, которая может содержать символы ? и *. ALL EXCEPT Skeleton – объявляются как частные переменные, не удовлетворяющие маске Skeleton. Пример. Употребляются команды PUBLIC и PRIVATE. && Программа первого уровня public var1, var2 var1 = 10 var2 = 15 do Down && Вызов процедуры второго уровня ? var1 && Напечатает: 10 ? var2 && Напечатает: 100 && Глобальные переменные освобождаются явно release var1, var2 && Процедура второго уровня procedure Down private var1 var1 = 50 var2 = 100 endProc Из примера видно, что после вызова процедуры Down, в которой переменная var1 объявлена как частная, значение переменной var1 в программе первого уровня не изменилось. Замечание. Результат не изменится, если в программе первого уровня удалить команду PUBLIC. |