Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi mehrere Formulare gleichzeigig (https://www.delphipraxis.net/103199-mehrere-formulare-gleichzeigig.html)

iron 12. Nov 2007 11:58


mehrere Formulare gleichzeigig
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hab da mal ein blödes anliegen,

ich möchte gerne mehrere Formulare als Hauptfenster aneinander setzen, die sich auch beim Programmstart alle öffnen und man diese allerding unabhängig voneinander dann auch verschieben kann. Ich möcht das ich z.B. Form2 und Form3 einzeln verschieben kann und beim verschieben von Form1 sollen alle drei gleichzeitig als ein Formular verschoben werden

Vielleicht kenn jemand diesen effekt, als verständnis hab ich ein kleines Bild angehängt.

Mein Problem iss nun das ich diese drei Formulare hab, und beim OnCreate des ersten Formulares wollt ich die anderen beiden öffnen lassen, bekomm nur bei Start ne Zugriffsverletzung.

Wie kann man das nun hinbekommen das alle drei öffnen.

dominikkv 12. Nov 2007 12:16

Re: mehrere Formulare gleichzeigig
 
im quelltext des programms die formulare nach deren erzeugung sichtbar machen.

patti 12. Nov 2007 12:39

Re: mehrere Formulare gleichzeigig
 
Zitat:

im quelltext des programms die formulare nach deren erzeugung sichtbar machen.
Also z.B. im OnShow von Form1 ;-)

P@Tti

iron 12. Nov 2007 12:58

Re: mehrere Formulare gleichzeigig
 
Ja Danke habs nun hinbekommen, nun noch eins, gibt es eine leichte Methode z.B. im OI die Fenster aneinanderzustellen oder muss ich manuell alles Fenster Positionieren.

patti 12. Nov 2007 13:03

Re: mehrere Formulare gleichzeigig
 
Wenn du mit "aneinanderstellen" auch meinst, dass die Fenster so wie oben beschrieben aneinader kleben und miteinander verschoben werden, dann musst du dies wohl "per Hand" im Quelltext machen.

iron 12. Nov 2007 13:09

Re: mehrere Formulare gleichzeigig
 
genau das meinte ich und danke, ich dachte es gäbe irgendeine einstellung dafür, dann muss ich wohl eben in den sauren Apfel beissen

bitsetter 12. Nov 2007 16:22

Re: mehrere Formulare gleichzeigig
 
Hi,

die obersten beiden Fenster könnte man eventuell schon mal mit der Funktion TileWindows() nebeneinander setzen.
Delphi-Quellcode:
var
  r: TRect;
  WndList: array[0..1] of HWND;
begin
  r:= screen.WorkAreaRect;
  inc(r.Left, 100);
  inc(r.Top, 100);
  dec(r.Bottom,300);
  dec(r.Right, 100);
  WndList[0]:= self.Handle;
  WndList[1]:= form2.Handle;
  TileWindows(0, MDITILE_VERTICAL, @r, high(WndList)+ 1, @WndList);
So in etwa.

dominikkv 12. Nov 2007 16:57

Re: mehrere Formulare gleichzeigig
 
Zitat:

Zitat von patti
Zitat:

im quelltext des programms die formulare nach deren erzeugung sichtbar machen.
Also z.B. im OnShow von Form1 ;-)

P@Tti

ich meinte eigendlich im quelltext des programms, also hier:
Delphi-Quellcode:
program Project1;

uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1},
  Unit2 in 'Unit2.pas' {Form2},
  Unit3 in 'Unit3.pas' {Form3};

{$R *.res}

begin
  Application.Initialize;
  Application.MainFormOnTaskbar := True;
  Application.CreateForm(TForm1, Form1); // 1.Form wird erzeugt, Form1.FormCreate wird aufgerufen
  Application.CreateForm(TForm2, Form2);
  Application.CreateForm(TForm3, Form3);
  Form2.show; // hier
  Form3.show;
  Application.Run;
end.
(Projekt -> Quelltext anzeigen)
Form1.OnShow wird immer aufgerufen wenn Form1 sichtbar gemacht wird (Visible auf True gesetzt wird).

Und das gleichzeitige bewegen musst du selber machen,
hier ist mal ein ansatz.

Dunkel 12. Nov 2007 18:03

Re: mehrere Formulare gleichzeigig
 
Zitat:

Zitat von iron
Ja Danke habs nun hinbekommen, nun noch eins, gibt es eine leichte Methode z.B. im OI die Fenster aneinanderzustellen oder muss ich manuell alles Fenster Positionieren.

Gibt es da in der JVCL nicht eine Kompo Namens "TMagnetForm" oder so ähnlich, die genau das ohne großen Programmieraufwand macht? Ich meine mich da ganz dunkel an was erinnern zu können...

iron 13. Nov 2007 01:56

Re: mehrere Formulare gleichzeigig
 
Zitat:

Zitat von Dunkel
Gibt es da in der JVCL nicht eine Kompo Namens "TMagnetForm" oder so ähnlich, die genau das ohne großen Programmieraufwand macht? Ich meine mich da ganz dunkel an was erinnern zu können...

Da haste recht, hätte ich auch gleich gucken können :wall:

Und alle anderen danke ich für Ihr Codes und antworten.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:56 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz