![]() |
Mehrere Formulare
Hallo,
ich habe jetzt schon einige Zeit gesucht, aber nichts gefunden, dass mir geholfen hätte: Ich habe eine Anwendung, in der ich zusätzliche VCL-Formulare habe, die ich bei Bedarf anzeigen lassen möchte. Funktioniert soweit wie erwartet. Jetzt möchte ich zwei Formulare offen halten und zwischen den beiden (Main + ein anderes) hinundherwechseln. Wenn ich auf das Hauptfenster klicke, kann ich zwar auf sichtbare Komponenten zugreifen, aber das andere Fenster bleict trotzdem vorne. Gibt es eine Möglichkeit das andere Formular nach hinten zu schieben und bei Bedarf wieder nach vorne zu holen (ich möchte es nicht schliessen)? VG Ray |
AW: Mehrere Formulare
Wie wäre es mit einem Pagecontrol? Für jede Form ein Tabsheet.
|
AW: Mehrere Formulare
Versteh ich jetzt nicht.
Ich möchte keine (zusätzlichen) Tabs, sondern tatsächlich ein zusätzliches Fenster, in dem ich bei Bedarf Sachen anzeigen kann. Wie gesgt funktioniert soweit auch, aber für manche Anwendungsfälle wäre es schön, wenn man schnell zwischen den beiden Fenstern hin- und herwechseln kann. Leider habe ich es noch nicht geschafft, das Hauptfenster zu holen. |
AW: Mehrere Formulare
Setz mal in der DPR-Datei das Application.MainFormOnTaskbar auf False. Das hat zwar andere Nachteile, stellt aber das gewünschte Verhalten her.
|
AW: Mehrere Formulare
Welche Delphiversion? (Tipp, damit man es bei jeder Frage nicht neu anzugeben braucht:
![]() Die reagieren ja teilweise unterschiedlich. Ansonsten hat jede Form einen ![]() Eigentlich sollte es standardmäßig aber auf pmNone stehen. :gruebel: z.B. Dialoge und ShowModal hängen sich an die gerade aktive Form, damit sie immer davor bleiben. Eventuell hängt sich deine Form automatisch an die MainForm, damit sie nicht ausversehn dahinter verschwindet. |
AW: Mehrere Formulare
Wenn die Nicht-Hauptformen immer im Vordergrund bleiben, dann scheint es sich um eine neuere Delphi-Version zu handeln. Wenn dabei zwei Fenster in den Vordergrund kommen dürfen sollen, dann hilft ein Überschreiben der CreateParams der Nicht-Hauptformen:
Delphi-Quellcode:
Dann kann die Mainform auch wieder in den Vordergrund, auch während die zweite Form sichtbar ist.
TMySecondForm = class(TForm)
// ... protected procedure CreateParams(var Params: TCreateParams); override; end; procedure TMySecondForm.CreateParams(var Params: TCreateParams); begin inherited CreateParams(Params); Params.WndParent := Application.Handle; end; |
AW: Mehrere Formulare
Boar eh, wer hat sich denn den Sch*** ausgedacht?
Bei pmNone und MainFormOnTaskBar wird die Form wirklich an die MainForm gehängt. Eigentlich sollte das doch nur bei pmExplicit und PopupParant=0 passieren ..... so, wie es auch in der Hilfe steht. :wall: |
AW: Mehrere Formulare
Hallo,
vielen Dank für die Antworten. die Version ist Delphi 11. der Eintrag in der DPR hat leider keine Wirkung gezeigt. Der PopUpMode steht auf pmNone. Das Überschreiben der CreateParams scheint zu funktionieren - super Danke schön. |
AW: Mehrere Formulare
Zitat:
|
AW: Mehrere Formulare
Zitat:
|
AW: Mehrere Formulare
Zitat:
Bei diesen ganzen Sachen muß man auch noch aufpassen, wenn man Forms oder einen Dialog im/beim Close der aktiven Form anzeigt. Hängt sich die neue Form/Dialog an die aktive Form und Diese verschwindet kurz darauf, dann wird auch die neue Form ins Nirvane mitgenomen. z.B. kurz vor/im OnClose eine MessageBox anzeigen wollen ... die sieht dann niemand, bzw. nur ganz ganz ganz kurz. Es sei den, man lässt sich nicht an die ActiveForm hängen, sondern an Jene, welche danach den Fokus bekommen hätte. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:12 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