Eine Methode:
- Du brauchst eine Hauptform (kannst du auf Visible := FALSE setzen), die all deine anderen Forms per
uses unter
implementation einbindet.
- In der Hauptform legst du unter
public ein
Array[0..AnzahlAnForms] of TForm an.
- Du machst in
FormCreate eine Schleife, die jede Form als Member des Arrays erzeugt:
Delphi-Quellcode:
for i := Low(FormArray) to High(FormArray) do
begin
case i of
0: FormArray[i] := TFormIrgendwas.Create (Self);
1: FormArray[i] := TFormNochwas.Create (Self);
...
end;
FormArray[i].Tag := i;
end;
- Jede Form wird von deinem Hauptform unter
implementation per uses eingebunden
- Nun kannst du auf jeder Form sowas in der Art machen:
Delphi-Quellcode:
procedure TFormIrgendwas.ButtonPrevClick(Sender: TObject);
begin
Hauptform.FormArray[Self.Tag].Visible := FALSE;
// Du mußt hier noch auf Unterlauf (< 0) prüfen
Hauptform.FormArray[Self.Tag - 1].Visible := TRUE;
{ oder
Hauptform.FormArray[Self.Tag].Hide;
Hauptform.FormArray[Self.Tag - 1].Show; }
end;
procedure TFormIrgendwas.ButtonNextClick(Sender: TObject);
begin
Hauptform.FormArray[Self.Tag].Visible := FALSE;
// Du mußt hier noch auf Überlauf (> MaxForms) prüfen
Hauptform.FormArray[Self.Tag + 1].Visible := TRUE;
{ oder
Hauptform.FormArray[Self.Tag].Hide;
Hauptform.FormArray[Self.Tag + 1].Show; }
end;
- Am Ende nicht vergessen, die Forms im Array wieder freizugeben:
Delphi-Quellcode:
for i := Low(FormArray) to High(FormArray) do
FreeAndNil (FormArray[i]);
- Noch was: Wenn du die anderen Forms unter den Projektoptionen automatisch erzeugst, nimm die alle (bis auf die Hauptform) raus.
Nicht getestet ...