Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Form mit Parent = Desktop, Controls funktionieren nicht (https://www.delphipraxis.net/95828-form-mit-parent-%3D-desktop-controls-funktionieren-nicht.html)

Kill0r 13. Jul 2007 19:57


Form mit Parent = Desktop, Controls funktionieren nicht
 
Hi! :-D
Ich habe folgendes Problem:
Ich arbeite gerade an einem LAN-Messenger und habe dazu 2 Forms, 1 Form für die Kontaktliste (die MainForm ;)) und 1 Form für die Unterhaltungsfenster selbst. Die verschiedenen Unterhaltungen sind alle im gleichen Form mittels PageControl und Tabs untergebracht.
Die Tabs bzw. die verschiedenen Pages werden dynamisch erstellt und zugewiesen.

Nunja... nun muss ich ja die UnterhaltungsForm von der MainForm aus aufrufen... dabei erhält das Chatfenster als Parent die MainForm. Nun soll aber das Chatfenster weiterhin sichtbar bleiben (und auch einen eigenen Eintrag in der Taskleiste erhalten) auch wenn die Kontaktliste minimiert wird.

Ich hab es bereits einigermassen hingekriegt (den Parent des Chatfensters auf den Desktop zu setzen), nur gibt es nun ein grösseres Problem, nämlich das die Controls auf dem Chatfenster nicht bzw. nicht richtig auswählbar sind. Sogar das Fenster selbst hat Probleme (als würde irgendwas mit dem Fokus schief laufen). Wenn man das Fenster an der Titelliste packt, sieht das Fenster aus als wäre es gerade im Hintergrund (also Titelleiste hat die Farbe eines inaktiven Fensters) es lässt sich zwar verschieben doch man sieht den Inhalt des Fensters nicht, nicht mal einen Rahmen, sondern es taucht erst wieder beim Loslassen an der Stelle auf. :wall:

Hier der Code den ich zum Parent setze benutze:
Delphi-Quellcode:
frmConversation := TfrmConversation.CreateParented(GetDesktopWindow);
Dies wird beim 1. Erstellen eines Tabs ausgeführt :wink:

Und hier noch der Teil wo die Forms erstellt werden:
Delphi-Quellcode:
Application.CreateForm(TfrmMain, frmMain);
Application.CreateForm(TfrmSettings, frmSettings);
//Application.CreateForm(TfrmConversation, frmConversation);
Application.CreateForm(TfrmAddContact, frmAddContact);
(frmConversation hab ich auskommentiert weil ich es ja erst später mit CreateParented(); erstelle)

Ich hoffe ihr wisst eine Lösung wie ich diesen ziemlichen nervigen Fehler ausbügeln kann ;)

Cu
Kill0r

bitsetter 13. Jul 2007 21:17

Re: Form mit Parent = Desktop, Controls funktionieren nicht
 
Hi,

einen 2. Eintrag in der Taskleiste für das 2. Formular kann man ansonsten auch so bekommen:
Delphi-Quellcode:
protected
  procedure CreateParams(var Params: TCreateParams); override;
end;

var
Form2: TForm2;

implementation

{$R *.DFM}

procedure TForm2.CreateParams(var Params: TCreateParams);
begin
  inherited CreateParams(Params);
  Params.WndParent := GetDesktopWindow;
end;

Kill0r 14. Jul 2007 16:09

Re: Form mit Parent = Desktop, Controls funktionieren nicht
 
HURRA! :-D :-D

Deine Lösung hat hervorragend funktioniert! ;)
So nun kann ich endlich weiter daran arbeiten :)

Noch nen schönen Tag :dp:

Cu
Kill0r


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:11 Uhr.

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