Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Form1 als Parent zuweisen - inaktive Titelleiste


galagher - Fr 26.11.10 23:23
Titel: Form1 als Parent zuweisen - inaktive Titelleiste
Hallo!

Wenn ich einem zur Laufzeit erzeugten Fenster (aForm) Form1 als Parent zuweise, erscheint aForm mit inaktiver Titelleiste. Wie bekomme ich es hin, dass aForm - das ja den Fokus hat bzw. dessen Komponenten den Fokus haben - als aktives Fenster dargestellt wird? Es reagiert ja auch wie ein solches!

Ich kann es nicht als MDIChild handhaben, da es in anderen Situationen auch als "freies" Fenster existieren muss.

Hier der wesentliche Code:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
 aForm := TForm2.Create(Application);
 with aForm do
 begin
  Parent := Form1;
  Show;  {Bei ShowModal reagiert das Programm nicht mehr!}
  //....


bummi - Fr 26.11.10 23:30


Delphi-Quelltext
1:
2:
Borderstyle=bsNone;
align := alClient;


Edit:
Du kannst es auch auf eine Panel oder Tabsheet legen, bei einem Pagcontrol per ManualDock als neues Tab reinhängen etc...


galagher - Fr 26.11.10 23:42

Es soll aber ein eigenes, innerhalb von Form1 frei bewegbares Fenster sein, mit eigener Tittelleiste, eigenen Symbolen, und man soll es maximieren (beim minimieren "verschwindet" es irgendwohin) und in der Grösse beliebig verändern können!


Delete - Fr 26.11.10 23:53

- Nachträglich durch die Entwickler-Ecke gelöscht -


bummi - Sa 27.11.10 00:01

Sorry, ich hatte Dich falsch verstanden, dann ist der Weg von Frühlingsrolle der richtige, die MDIChild - Eigenschaft lässt sich auch nach Erzeugung des Formulars umschalten, man muß nur ein bisschen mit seinem Clientrect jonglieren.


galagher - Sa 27.11.10 09:25

user profile iconFrühlingsrolle hat folgendes geschrieben Zum zitierten Posting springen:
Ich hab mal diesen Beitrag [http://www.delphi-forum.de/topic_Form+in+Form+anzeigen_98878,0.html] dazu gefunden.

user profile iconbummi hat folgendes geschrieben Zum zitierten Posting springen:
die MDIChild - Eigenschaft lässt sich auch nach Erzeugung des Formulars umschalten

Dann erscheint das MDIChild hinter den Komponenten von Form1!


bummi - Sa 27.11.10 10:14

Wenn Du da Controls hast, klar...
Ich weiß nicht ob es eine zuverlässige Möglichkeit gibt die Windowsmalroutinen für die Titelleiste und die Buttons problemlos zu überschreiben, die Komponenten die ich hierfür bisher gesehen habe, hatten immer irgendwelche Seiteneffekte, gegf. kannst Du das ganze einfacher simulieren indem Du ein Panel nimmst mit einem Titelpanel in dem Du Originaldarstellung und Verhalten simulierst und das Form auf dem Panel ohne Borders , alClient verankerst.