Angenehmer als Frames finde ich inzwischen eingebettete Formulare:
Delphi-Quellcode:
procedure TFormCompetitors.FormCreate(Sender: TObject);
begin
FormClubsControl.ManualDock(TabSheetClubsControl, nil, alNone);
FormClubsControl.Align := alClient;
FormClubsControl.Show;
FormClubsOverview.ManualDock(TabSheetClubsOverview, nil, alNone);
FormClubsOverview.Align := alClient;
FormClubsOverview.Show;
end;
Man hat so alle Ereignisse und Möglichkeiten von Formularen verfügbar und kann diese zur Laufzeit an beliebiger Stelle einbinden.
In der
IDE hält man dafür einfach leere Container (Panels, TabSheets etc) vor.
Mit Frames geht das natürlich auch, Formulare finde ich aber übersichtlicher. Der Formularramen wird dabei automatisch ausgeblendet.
Eine solche Projektstrukturierung kann ich bei komplexeren Programmen unbedingt empfehlen. Das verbessert deutlich die Übersicht über die Quelltexte.
Eine nachträgliche Projektzerlegung sollte man sich jedoch überlegen. Dies kann recht aufwendig werden, da man evtl. Ereignisbehandlungen von Hand übernehmen muss.