Entwickler-Ecke
Sonstiges (Delphi) - MDI-Fenster mit Maximaldarstellung und Registerlasche
Anateus - Do 07.10.10 09:00
Titel: MDI-Fenster mit Maximaldarstellung und Registerlasche
Hallo,
man findet ja in vielen Anwendungen nicht mehr die klassische MDI-Darstellung von Child-Fenstern, die wie Windows im MDI-Parent gestabelt werden, sondern die MDI-Child werden in Maximalgröße im MDI-Parent dargestellt und erhalten so eine Registerlasche. Diese Registerlasche hat man rechten Rand ein X-Symbol, mit dem man das Fenster wieder schließen kann.
Wenn mehrere MDI-Childs geöffnet sind, dann werden diese Registerlaschen nebeneinander gereiht (ähnlich wie beim Excel).
Zu guter Letzt suche ich nun eine Komponente für Delphi7, damit ich diesen viuellen Effekt so hinbekomme.
Kann mir da jemand von Euch weiterhelfen?
Gruß
Fred
bummi - Do 07.10.10 09:27
Vorschlag:
Delphi-Quelltext
1: 2: 3:
| NeuesFenster := TNeuesFenster.Create; NeuesFenster.Show; NeuesFenster.ManualDock(PageControlAufparent,nil,alNone); |
Auf dem PageControl Tabvisible für alle Tabs auf False schalten und ein egens Control für die Tabs drüberlegen (z.B.) abgeleitet von TGraphicontrol, hier kannst Du Caption und Schließenbuttons darstellen und abarbeiten
Anateus - Do 07.10.10 10:38
Den Vorschlag finde ich gut, komme aber noch nicht ganz damit klar.
Kannste das noch ein wenig ausführlicher darstellen?
Danke.
Fred
bummi - Do 07.10.10 11:16
aber nur anreissen ok ;-)
FFromlist ist eine Stringlist erzeugt im Contructor und Freigegeben in destructor
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| procedure TForm1.NeuesFeneter; var i:Integer; f:TForm; begin f := TForm2.Create(self); FFromlist.AddObject(f.Caption,f); With f do begin show; manualdock(PC,nil,alNone); end; for I := 0 to PC.PageCount -1 do PC.Pages[i].tabvisible := false; PC.ActivePageIndex := pc.PageCount - 1; UpdateMyTabControl; end; |
UpdateMyTabControl würde jetzt in Deiner komponente die Strings aus FFromlist als tabs anzeigen, den letzten selektieren.
Bei Klick auf eine im tab gemaltes schließen :
Delphi-Quelltext
1: 2: 3: 4:
| FFromlist.Objects[index].Free FFromlist.Delete(index); PC.ActivePageIndex := pc.PageCount - 1; UpdateMyTabControl; |
Anateus - Do 07.10.10 16:26
Ich bedanke mich recht herzlich für Deine Hilfe.
Gruß
Fred
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!