Вопрос
В чем отличие, если объявлять переменные в разделе: "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 Сообщество Чайников
Контактная информация