Einzelnen Beitrag anzeigen

Tim Henford

Registriert seit: 14. Sep 2006
169 Beiträge
 
#9

Re: Eine Form mehrmals aufrufen

  Alt 12. Mär 2008, 09:58
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
  Mit Zitat antworten Zitat