Du hast Logik und Darstellung ja schon getrennt. Fein.
Wie wär es, wenn TMainform die Instanzen der Klassen erstellt und sie an die anderen Formulare verteilt. Am besten gleich über den Konstruktor, (die automatische Erzeugung dieser Formulare dann aus den Projektoptionen heraus nehmen).
Beispiel:
Delphi-Quellcode:
procedure TMainForm.FormCreate(Sender: TObject);
begin
FSomeClass := TSomeClass.Create;
Form2 := TForm2.Create(Self, FSomeClass);
end;
procedure TMainForm.FormDestroy(Sender: TObject);
begin
FSomeClass.Free;
end;
In TForm2 überschreiben wir den Konstruktor der Form:
Delphi-Quellcode:
type
TForm2 = class(TForm)
private
FSomeClass: TSomeClass;
public
constructor Create(AOwner: TComponent; const Value: TSomeClass); reintroduce; overload;
end;
var
Form2: TForm2;
implementation
{$R *.DFM}
constructor TForm2.Create(AOwner: TComponent; const Value: TSomeClass);
begin
inherited Create(AOwner);
FSomeClass := Value;
end;