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 MDI - "Fensterleiste" (https://www.delphipraxis.net/60735-mdi-fensterleiste.html)

glkgereon 11. Jan 2006 18:46


MDI - "Fensterleiste"
 
Hi,

Ich bin grade dabei, einen Texteditor zu schreiben...auf MDI-Basis.

Dazu habe ich irgendwo hier im Forum einen Code gefunden, der zwar funktioniert, aber mir ziemlich komisch vorkommt...
Delphi-Quellcode:
Childs:=TTIChild.Create(Application);
Demnach regelt diese Zeile die komplette Erstellung eines neuen Childs. Später greife ich dann über MainForm.MDIChilds[x] darauf zu.
Aber die Variable Childs wird doch bei jedem mal wieder überschrieben...Wieso zum Teufel funktioniert das? (also bisher funktionier es!)

Und dann die eigentliche Frage:
Das blöde bei den MDI-Childs wie ich sie bisher habe ist, das ich keine Möglichkeit habe, schnell zwischen den Fenster hinundher zu springen, wie zum beispiel bei einem Tab/PageControl. Daher hätte ich gerne eine Leiste, ähnlich wie die bei TextEd, auf der einfach für jedes Fenster ein Button ist womit ich zwsichen den Fenster wechseln kann.
geht das irgendwie mit er Kompo/Einstellung, oder muss ich da was selber basteln?

mirage228 11. Jan 2006 18:54

Re: MDI - "Fensterleiste"
 
Hi,

Bei der Erstellung des MDI-Formulares werden diese automatisch dem "MDIForm" (deinem Hauptformular) zugewiesen. Der Owner der Form ist wie gehabt die "Application", die sich daher um die Verwaltung dieser Objekte kümmert (sprich, dass sie afaik beim Beenden freigegeben werden z.B.).

Du kannst ohne Probleme ein PageControl artiges Verhalten hinzufügen, aber Du musst es selbst schreiben, ja.
Einfach
Delphi-Quellcode:
  MdiChildren[0].BringToFront;
  MdiChildren[0].SetFocus;
um, in diesem Fall, das erste MdiChild zu aktivieren.
Ich habe so eine Mdi-Fensterleiste mit Toolbar2000 und TBX mal selbst für meinen HTML-Editor (zu finden hier in der DP ;) ) geschrieben, also falls Du da fragen hast, kann ich Dir gerne weiterhelfen :)

mfG
mirage228

glkgereon 11. Jan 2006 18:56

Re: MDI - "Fensterleiste"
 
Zitat:

Zitat von mirage228
Hi,

Bei der Erstellung des MDI-Formulares werden diese automatisch dem "MDIForm" (deinem Hauptformular) zugewiesen. Der Owner der Form ist wie gehabt die "Application", die sich daher um die Verwaltung dieser Objekte kümmert (sprich, dass sie afaik beim Beenden freigegeben werden z.B.).

asoo...
Hatte mich doch schon arg gewundert^^

Zitat:

Zitat von mirage228
Du kannst ohne Probleme ein PageControl artiges Verhalten hinzufügen, aber Du musst es selbst schreiben, ja.
Einfach
Delphi-Quellcode:
  MdiChildren[0].BringToFront;
  MdiChildren[0].SetFocus;
um, in diesem Fall, das erste MdiChild zu aktivieren.

Hmm, ok, ich werd mich dann mal drann geben :)

Edit:
Ich habe die Kompo TButtonGroup gefunden -> Ideal!
kann ich da irgendwie einen Button markieren? also den Aktiven irgendwie hervorheben?


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:50 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