Добавление пользовательских свойств в формы
В большинстве случаев Вы размещаете код инициализации в обработчике события формы OnCreate.
Пользовательское свойство
Если Вам нужно добавить свойство для формы и инициализировать его перед событием OnCreate, Вы должны отменить конструктор формы (override).
Например, Вам нужно отменить конструктор формы Delphi, чтобы инициализировать свойство Вашей добавленной формы, вот что нужно сделать:
- Определить свойство для формы
- Отменить конструктор Create
- Инициализировать Ваше свойство перед inherited Create;
- Использовать Ваше инициализированное свойство в обработчике события OnCreate формы
interface type TRunTimeForm = class(TForm) procedure FormCreate(Sender: TObject) ; private fMyPreCreateValue: boolean; public constructor Create(AOwner: TComponent) ; override; property MyPreCreateValue : boolean read fMyPreCreateValue; end; implementation constructor TRunTimeForm.Create(AOwner: TComponent) ; begin fMyPreCreateValue := true; inherited Create(AOwner) ; end; procedure TRunTimeForm.FormCreate(Sender: TObject) ; begin // MyPreCreateValue был инициализирован раньше, чем формы была создана! ShowMessage(BoolToStr(MyPreCreateValue,true)) ; end;
Примечание: Вы не можете использовать код, который ссылается на стандартные свойства или методы компонентов, которые принадлежат форме перед вызовом inherited Create. Но Вы можете инициализировать Ваши свойства, как это было сделано выше.
Комментарии