• Как в delphi писать процедуры для динамических объектов?

    svd71
    @svd71
    Если вы создаете окна одного класса, то все функции, принадлежащие этому классу будут имплементированы во все копии. Пример:
    type
     TNotepad = class(TForm) //Предок всех классов для записи блокнота
    public
      class var OnAfterCreate: TNotifyEvent; //событие, для реакции после создания 
      constructor Create(AOwner: TComponent); override; //второй возможный 
                                        //вариатнвариант
    end;
    
    TMainForm = class(TForm)
       procedure FormCreate(Sender: TObject);
    public
       procedure DoAfterCreate1(Sender:TObject); //вариант 1
       procedure  DoAfterCreate2(Sender:TObject); //вариант 2
    end;
    
    constructor TNotepad.Create(AOwner: TComponent);
    begin
     inherited;
      //варант 1
     if Assigned(OnAfterCreate) then
          OnAfterCreate(Self);
    //*1
    //вариант 2
    if Assigned(Screen.MainForm ) then
      if Screen.MainForm is TMainForm then
        TMainForm(Screen.MainForm).DoAfterCreate2(Self);
    //*2
    end;
    
    procedute TMainForm.FormCreate(Sender:TObject);
    begin
      TNotepad.OnAfterCreate := Self.DoAfterCreate1; //вариант 1
    end;
    Ответ написан
    Комментировать