![]() |
Form zu einer "Gruppe" zuweisen?
Hi,
Nach längerem suchen ohne Erfolg, gebe ich hiermit auf und stelle erneut einen noobigen Thread. Ich habe ein Fenster erstellt. Dieses Fenster ist mein "Mainform". So. Nun möchte ich ein zweites Fenster erstellen was zu dieser Gruppe hinzugefügt wird. Also z.B. wenn man dass MainFnester schließt, schließt sich das andere Fenster auch. Halt ein Hauptfenster. Nur mein Problem ist, dass ich nicht weiß wie ich das andere Fenster zu dem Mainfenster hinzuufügen soll? Ich habe versucht beim erstellen des Fensters einfach den Handel dabei anzugeben. Doch irgendwie wird das Fenster noch in der Taskleiste angezeigt was es eigentlich nicht dürfte. Außerdem bleibt das Fenster offen wenn man das Hauptfenster schließt. Mfg |
Re: Form zu einer "Gruppe" zuweisen?
Das Schließen mußt du schon selber und explizit machen. Also zB vom ersten das zweite Fenster schließen.
|
Re: Form zu einer "Gruppe" zuweisen?
Hi,
hmm. Okay. Trodzdem weiß ich aber noch nicht wie ich das andere Fenster zu einer Gruppe machen soll. :gruebel: Mfg |
Re: Form zu einer "Gruppe" zuweisen?
Zitat:
|
Re: Form zu einer "Gruppe" zuweisen?
Hi,
Also ich nehme mal Delphi als beispiel. Bei Delphi sind ja mehrere Fenster. Zum beispiel einmal ein Form oder halt der Object Inspector... Doch unten in der Leite siehst du ja nur ein Programm. Delphi. Normaler weise sind dann ja drei Fenster zu sehen weil die ja eigeständig sind. Aber das Programm wird unten als ein ganzes angezeigt und wenn man oben die Hauptleiste schließt, schließen sich auch automatisch alle anderen Fenster. Da ich ja alles aus einer DLL hole ist es ja nicht so... Mfg |
Re: Form zu einer "Gruppe" zuweisen?
In der Titelleiste schließt du das MainForm (ist glaub ich bei Delphi die Menuleiste oben...). Wenn das MainForm geschlossen wird, ist das Programm geschlossen. Und dabei werden ALLE Fenster geschlossen, die zu deinem Programm gehören.
|
Re: Form zu einer "Gruppe" zuweisen?
Hi,
Ja. Aber ja nicht wenn ich eine DLL erstelle und die dann in einer anderen Programmiersprache öffne. Dort sind dann zwei Fenster aufgelistet. Auch wenn ich ein Projekt als "Form" öffne gehts auch so.Ich brauche halt einen Befehl oder einen Parameter wo das halt sozusagen Manuell geht. Mfg |
Re: Form zu einer "Gruppe" zuweisen?
Falls du nicht scheust, das von Hand zu machen, nimm den folgenden Code. Beide Fenster werden zusammen geöffnet, sind zusammen aktiv und werden zusammen minimiert. Weitere Dinge kannst du ja selbst einbauen.
Delphi-Quellcode:
-------------------------------------------
unit Unit1;
interface uses Windows, SysUtils, Classes, Forms, Dialogs, StdCtrls, Controls, Messages; type TForm1 = class(TForm) procedure FormActivate(Sender: TObject); procedure FormShow(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private-Deklarationen } public procedure Minimieren(var M: TMessage); message WM_NCLBUTTONDOWN; end; var Form1: TForm1; implementation {$R *.DFM} uses Unit2; procedure TForm1.FormActivate(Sender: TObject); begin sendmessage(Form2.handle, WM_NCACTIVATE, 1, 0); end; procedure TForm1.FormShow(Sender: TObject); begin Form2.show; end; procedure TForm1.FormCreate(Sender: TObject); begin Application.Title := 'Gruppe W1'; Caption := Application.Title; end; procedure TForm1.Minimieren(var M: TMessage); begin DefaultHandler(M); if M.WPARAM = HTREDUCE then Form2.windowstate := wsminimized; end; end. -------------------------------------------------------------- unit Unit2; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs; type TForm2 = class(TForm) procedure FormActivate(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormCreate(Sender: TObject); private { Private-Deklarationen } public procedure CreateParams(var Params: TCreateParams); override; procedure Minimieren(var M: TMessage); message WM_NCLBUTTONDOWN; end; var Form2: TForm2; implementation {$R *.DFM} procedure TForm2.FormActivate(Sender: TObject); begin sendmessage(Application.Mainform.handle, WM_NCACTIVATE, 1, 0); end; procedure TForm2.CreateParams(var Params: TCreateParams); begin inherited CreateParams(Params); Params.WndParent := GetDesktopWindow; end; procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction); begin Application.MainForm.close; end; procedure TForm2.FormCreate(Sender: TObject); begin Caption := 'Gruppe W2'; end; procedure TForm2.Minimieren(var M: TMessage); begin DefaultHandler(M); if M.WPARAM = HTREDUCE then Application.minimize; end; end. Gruß DBR [edit=alcaeus]Delphi-Tags eingefuegt. In Zukunft bitte selbst machen. Mfg, alcaeus[/edit] |
Re: Form zu einer "Gruppe" zuweisen?
Das in der Taskleiste ist ein Fenster (Application.Handle) welches du sonst garnicht zu sehen bekommst. Es hat nichts mit den Forms (wieviele auch immer) zu tun.
Der Grund warum es in der Taskleiste angezeigt wird ist, daß der Stil WS_EX_APPWINDOW gesetzt ist. |
Re: Form zu einer "Gruppe" zuweisen?
Hi,
hmm. Danke aber so wichtig ists dann doch nicht. Ich habe auch mal versucht nochmal mit handel.Parent das Fenster zu dem Mainfenster hinzuzufügen doch dann ist das Fenster in dem anderem Fenster und das will ich ja nicht. Naja. Egal. Trodzdem danke nochmal. Mfg |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:44 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