Um es mal etwas detaillierter zu erläutern:
Unit Unit2;
interface
type
TMyCallback = procedure(Sender: TObject; s: string) of Object;
TForm2 = class(TForm)
[..]
private
FMyCallback : TMyCallback;
public
procedure ShowWithCallback(Callback: TMyCallback);
end;
[..]
procedure TForm2.ShowWithCallback(Callback: TMyCallback);
begin
assert(assigned(Callback), 'Es muss ein Callback übergeben werden');
FMyCallback := Callback;
end;
Im OnClose wird es dann so aufgerufen:
FMyCallback(self, 'mein Rückgabewert');
Und Form1 braucht natürlich eine Public Methode wie folgt:
procedure TForm1.Form2ReturnCode(Sender: TObject; ReturnValue: string);
Grüße
TurboMagick