Карта сайтаСсылкиКонтакты

Добавление пользовательских свойств в формы

PDF Печать
Статьи

Событие формы OnCreate генерируется, когда форма создана. Для динамически созданных форм (т.е. не перечисленных в списке форм Project->Options->Auto-create) управляется Вашим кодом - вызывая конструктор Create.

Форма в Delphi может быть создана динамически, используя Application.CreateForm (TFormClass, FormName) или FormName:= TFormClass.Create(Owner). Когда создается форма, генерируется ее событие OnCreate.

В большинстве случаев Вы размещаете код инициализации в обработчике события формы 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. Но Вы можете инициализировать Ваши свойства, как это было сделано выше.


 

Добавить комментарий


Защитный код
Обновить