Wenn die Variable immer den selben Namen und Typ hat kannst du eine "Basis"-Form erstellen und davon ableiten:
Delphi-Quellcode:
...
type
TfrmBasis = class(TForm)
...
private
FDeineVar: Integer;
FOnDeineVarChanged: TNotifyEvent;
protected
procedure SetDeineVar(Value: Integer);
public
procedure ShowDeineVar;
property DeineVar: Integer
read FDeineVar write SetDeineVar;
property OnDeineVarChanged: TNotifyEvent
read FOnDeineVarChanged write FOnDeineVarChanged;
end;
TfrmBasisClass = class of TfrmBasis;
...
procedure TfrmBasis.ShowDeineVar;
begin
ShowMessage('DeineVar ist "' + IntToStr(Self.DeineVar) + '"');
end;
procedure TfrmBasis.SetDeineVar(Value: Integer);
begin
if FDeineVar <> Value then
begin
FDeineVar := Value;
// Hier kannst du z. B. die Daten verarbeiten,
// eine Routine aufrufen oder
// ein Event auslösen:
if Assigned(FOnDeineVarChanged) then
Self.OnDeineVarChanged(Self);
end;
end;
Und so leitest du ganz einfach ein Form davon ab:
Delphi-Quellcode:
...
uses
Windows, ...,
Basis;
// <-- Basis-Unit/Form einbinden
type
TfrmEins =
class(TfrmBasis)
// <-- Form von Basis ableiten
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
TfrmEins enthält nun alle Eigenschaften, Methoden, Variablen und Controls von TfrmBasis.
Und so kannst du eins aufrufen:
Delphi-Quellcode:
...
procedure TfrmMain.ShowForm(AFormClass: TfrmBasisClass;
ADeineVar: Integer = 0);
var
FormObj: TfrmBasis;
begin
FormObj := AFormClass.Create(Self);
try
FormObj.DeineVar := ADeineVar;
if FormObj.ShowModal = mrOK then
Self.ShowCurrentDeineVar(FormObj);
finally
FreeAndNil(FormObj);
end;
end;
procedure TfrmMain.Button1Click(Sender: TObject);
begin
Self.ShowForm(TfrmEins, 1234);
Self.ShowForm(TfrmZwei, 5678);
...
end;
Im Anhang ist ein vollständiges Demo-Projekt inkl. Exe. Da habe ich für dich noch ein paar weitere Routinen eingebaut die dir die Verwendung verdeutlichen. Ich hoffe ich konnte dir damit helfen