Danke für die schnellen Hilfen.
Also ich lasse die Forms jetzt folgendermaßen erstellen:
Delphi-Quellcode:
var
formen : array [1..5] of TForm1;
AnzForm : integer;
procedure THauptForm.StartBtnClick(Sender: TObject);
begin
AnzForm:= AnzForm+1;
formen[AnzForm]:= TForm1.Create(nil);
formen[AnzForm].Left:= pos.X; formen[AnzForm].Top:= pos.Y;
formen[AnzForm].Tag:= AnzForm;
formen[AnzForm].Show;
end;
Form1 sieht dann so aus, die nächsten Fenster sollen sich alle neben das erste Reihen und wenn sich das erste bewegt sollen alle mitziehen:
Delphi-Quellcode:
...
private
procedure WMMove(var Message: TWMMove); MESSAGE WM_MOVE;
procedure AlignForm;
....
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
AnzForm:= AnzForm-1;
end;
procedure TForm1.WMMove(var Message: TWMMove);
begin
inherited;
try // hier hängt er dann
if Assigned(formen[Form1.Tag]) then begin
AlignForm;
end;
except
end;
end;
procedure TForm1.AlignForm;
begin
formen[Form1.Tag].Left := formen[formen[Form1.Tag]-1].Left + formen[formen[Form1.Tag]-1].Width;
formen[Form1.Tag].Top := formen[formen[Form1.Tag]-1].Top;
end;
das zugreifen auf "Tag" funktioniert hier so nicht, hat da jemand eine Lösung