Message2 geht ohne Probleme. Bei Message will ich ein Erbe von Form machen, das ich MyButton.OnClick auswerten kann.
Bei Message1 kommt ein Fehler, siehe Anhang.
Wie kann ich dies umgehen ?
Code: Alles auswählen
type
{ TMyForm }
TMyForm=class(TForm)
// procedure MyButtonClick(Sender: TObject);
end;
{ TMyForm }
//procedure TMyForm.MyButtonClick(Sender: TObject);
//begin
// ShowMessage('Achtung, mein dynamisch erstelltes Formular wird geschlossen!');
// if Sender is TButton then
// TForm(TButton(Sender).Parent).Close;
//end;
procedure Message1(Msg, Caption: string);
var
MyForm: TMyForm; // Vererbtes Form
MyButton: TButton;
begin
MyForm := TMyForm.Create(nil);
MyForm.SetBounds(100, 100, 220, 150);
MyForm.Caption := Caption;
MyButton := TButton.Create(MyForm);
MyButton.Caption := Msg;
MyButton.SetBounds(10, 10, 200, 30);
MyButton.Parent := MyForm;
// MyButton.OnClick := @MyForm.MyButtonClick;
MyForm.ShowModal;
FreeAndNil(MyForm);
end;
procedure Message2(Msg, Caption: string);
var
MyForm: TForm;
MyButton: TButton;
begin
MyForm := TForm.Create(nil);
MyForm.SetBounds(100, 100, 220, 150);
MyForm.Caption := Caption;
MyButton := TButton.Create(MyForm);
MyButton.Caption := Msg;
MyButton.SetBounds(10, 10, 200, 30);
MyButton.Parent := MyForm;
// MyButton.OnClick := @MyForm.MyButtonClick;
MyForm.ShowModal;
FreeAndNil(MyForm);
end;
{ TForm1 }
procedure TForm1.Button1Click(Sender: TObject);
begin
Message1('Hello World', 'Hinweis');
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Message2('Hello World', 'Hinweis');
end;