СообЧа > База Знаний > Программирование > Delphi

Вопрос

В чем отличие, если объявлять переменные в разделе: "private", "public" или после "var Form1: TForm1;" ?

Ответ

private и public — это типы полей объекта.
Если объявить переменную в private, то она будет доступна только из данного модуля, если в public — из всех модулей (если в uses вызывающего модуля дописать имя данного модуля). Причем такие переменные называются полями объекта. Поля вызываются, например, так:

Form1.SomeField…

Если описать переменную после "var Form1: TForm1;", то это будет глобальная переменная, которая будет также доступна из всех модулей (есть если в uses вызывающего модуля дописать имя данного модуля). Вызывается просто по имени, например, SomeVar := …
Хороший стиль программирования не рекомендует обращаться к полям на прямую (например, a := Form1.SomeField). Для этого нужно написать функцию (в объектно-ориентированном программировании — метод объекта), которая будет возвращать результат какого-то поля
объекта, например,

a := Form1.GetSomeFieldValue, где
function TForm1.GetSomeFieldValue: sometype;
begin
Result := Form1.SomeField;
end;

Этот стиль обеспечивает более высокую надежность и понятность, а также совместимость с другими модулями (например, более ранних версий).

Из конференции Expert_FAQ



Copyright © 2000-2004 Сообщество Чайников
Контактная информация