Nehmen wir mal das Beispiel von oben und designen das mal ohne den MessageManager:
Delphi-Quellcode:
type
TfrmMitMemo = class(TForm)
mmoMessages: TMemo;
btnShowInput: TButton;
procedure btnShowInputClick(Sender: TObject);
private
{ Private-Deklarationen }
procedure AddMessage(Sender: TObject; const NewMsg: string);
public
{ Public-Deklarationen }
end;
...
procedure TfrmMitMemo.AddMessage(Sender: TObject; const NewMsg: string);
begin
mmoMessages.Lines.Add(NewMsg);
end;
Delphi-Quellcode:
type
TfrmInput = class(TForm)
edtMessage: TEdit;
btnAdd: TButton;
procedure btnAddClick(Sender: TObject);
private
{ Private-Deklarationen }
FNewMessageCallback: TNewMessageEvent;
public
{ Public-Deklarationen }
property NewMessageCallback: TNewMessageEvent read FNewMessageCallback write FNewMessageCallback;
end;
Delphi-Quellcode:
procedure TfrmMitMemo.btnShowInputClick(Sender: TObject);
begin
frmInput.NewMessageCallback := AddMessage;
frmInput.Show;
end;
Delphi-Quellcode:
procedure TfrmInput.btnAddClick(Sender: TObject);
begin
if Assigned(FNewMessageCallback) then
FNewMessageCallback(Self, edtMessage.Text);
end;
Das macht jetzt exakt das Gleiche ohne eine weitere Instanz da irgendwo noch reinzubasteln.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)