Понимание методов класса Delphi

В DelphiМетод - это процедура или функция, которая выполняет операцию над объектом. Метод класса - это метод, который работает со ссылкой на класс вместо ссылки на объект.

Если вы будете читать между строк, вы обнаружите, что методы класса доступны, даже если вы еще не создали экземпляр класса (объект).

Методы класса против Методы объекта

Каждый раз, когда вы создаете Delphi компонент динамически, вы используете метод класса: конструктор.

Конструктор Create - это метод класса, в отличие от практически всех других методов, с которыми вы столкнетесь в программировании на Delphi, которые являются объектными методами. Метод класса - это метод класса, и, что вполне достаточно, объектный метод - это метод, который может вызываться экземпляром класса. Это лучше всего иллюстрируется на примере, когда классы и объекты выделены красным для ясности:

myCheckbox: = TCheckbox. Создать (ноль);

Здесь вызову Create предшествует имя класса и точка ("TCheckbox."). Это метод класса, обычно известный как конструктор. Это механизм, с помощью которого создаются экземпляры класса. Результатом является экземпляр класса TCheckbox. Эти экземпляры называются объектами. Сравните предыдущую строку кода со следующим:

instagram viewer

myCheckbox. Перекрасить;

Здесь вызывается метод Repaint объекта TCheckbox (унаследованный от TWinControl). Вызову Repaint предшествует переменная объекта и точка («myCheckbox.»).

Методы класса могут вызываться без экземпляра класса (например, TCheckbox. Создайте"). Методы класса также могут быть вызваны непосредственно из объекта (например, myCheckbox. ИмяКласса "). Однако объектные методы могут быть вызваны только экземпляром класса (например, myCheckbox. Repaint ").

За кулисами конструктор Create выделение памяти для объекта (и выполнения любой дополнительной инициализации, как указано TCheckbox или его предками).

Экспериментируйте с вашими собственными методами обучения

Подумайте о AboutBox (пользовательская форма «Об этом приложении»). Следующий код использует что-то вроде:

процедура TfrMain.mnuInfoClick (Отправитель: TObject);
начать
AboutBox: = TAboutBox. Создать (ноль);
пытаться
AboutBox. ShowModal;
наконец
AboutBox. Выпуск;
конец;
конец;
Это, конечно, очень хороший способ выполнить работу, но просто для того, чтобы сделать код более легким для чтения (и управления), было бы гораздо эффективнее изменить его на:
процедура TfrMain.mnuInfoClick (Отправитель: TObject);
начать
TAboutBox. Покажи себя;
конец;
Приведенная выше строка вызывает метод класса «ShowYourself» класса TAboutBox. «ShowYourself» должен быть помечен ключевым словомучебный класс":
Процедура класса TAboutBox. Покажи себя;
начать
AboutBox: = TAboutBox. Создать (ноль);
пытаться
AboutBox. ShowModal;
наконец
AboutBox. Выпуск;
конец;
конец;

Что нужно помнить

  • Определение метода класса должно включать зарезервированное слово class перед процедурным или функциональным ключевым словом, которое запускает определение.
  • Форма AboutBox не создается автоматически (Project-Options).
  • Поместите модуль AboutBox в предложение использования основной формы.
  • Не забудьте объявить процедуру в интерфейсной (публичной) части модуля AboutBox.
instagram story viewer