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;
procedure TForm1.OnCklickFrom2(Sender: TObject);
begin
Caption := TComponent(Sender).Name;
end;
procedure TForm1.FormCreate(Sender: TObject);
var
Frm2 : TForm2;
begin
Frm2 := TForm2.Crete(Application);
Frm2.OnClick := Self.OnCklickFrom2;
Frm2.Button1.OnClick := Self.OnCklickFrom2;
end;