AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

MDI Child Name in TPageControl verwalten

Ein Thema von flow · begonnen am 30. Jun 2003 · letzter Beitrag vom 30. Jun 2003
Antwort Antwort
Benutzerbild von flow
flow

Registriert seit: 25. Apr 2003
61 Beiträge
 
#1

MDI Child Name in TPageControl verwalten

  Alt 30. Jun 2003, 07:55
Hallo,

hab ein kleines Problem mit meiner Anwendung.

Ich hab einen Text Editor der bei jeder geöffneten Datei eine MDI CHild erzeugt und nebenbei noch in einer TPageControl einen Button für dieses MDI CHild reinsetzt. Das soll so wie eine Taskleiste wirken, um deine geöffnete Datei in den Vordergrund zu holen braucht man einfach nur auf die Pagecontrol zu klicken.

Ich habs soweit das ich für jedes neue MDI CHild einen neuen Button erzeuge und soweit das wenn ich ein Child schließe der Button auch weg kommt. Jedoch möcht ich den Befehl abfangen wenn der User unter dem Menü Window eines der geöffneten Fenster anklickt. Dann soll der Button in der PageControl der zum dementsprechenden Child gehört auch aktiv werden. Kann ich es irgendwie abfangen wenn ein bestimmtes MDI Child aktiv wird?

Ich hoff ich hab das einigermaßen verständlich erklärt! Außerdem ists ja Montag morgen, da geht sowieso noch nicht viel !

FLOW
die welt ist eine scheibe

...und aus vinyl
  Mit Zitat antworten Zitat
Benutzerbild von Garby
Garby

Registriert seit: 17. Mär 2003
Ort: Tirol
199 Beiträge
 
Delphi 2005 Professional
 
#2
  Alt 30. Jun 2003, 10:42
Hi Flow,

genau die gleiche Vorgehensweise habe ich in meinen Programmen auch realisiert.

Ich habe erstmal für alle Clientformulare eine Basisklasse TfrmClient.
Dort eine Public-Variable gTabSheet, der das Zugehörige Tabsheet zugewiesen wird.

Für das von dir beschriebene Problem habe ich das OnActivate-Ereignis von TfrmClient verwendet.

Das schaut so aus:
Delphi-Quellcode:
procedure TfrmClient.FormActivate(Sender: TObject);
begin
  if Assigned(gTabSheet) then
    GTabSheet.PageControl.ActivePageIndex := GTabSheet.PageIndex;
end;
Zusätzlich habe ich noch die Möglichkeit geschaffen mit Ctrl+Bild auf das nächste bzw. vorige Client-Formular zu springen:
Delphi-Quellcode:
procedure TfrmClient.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if (Key = VK_NEXT) and (Shift = [ssCtrl]) then
    GTabSheet.PageControl.SelectNextPage(True);
  if (Key = VK_PRIOR) and (Shift = [ssCtrl]) then
    GTabSheet.PageControl.SelectNextPage(False);
end;
Ich hoffe es hilft dir.
Walter
Wenn zwei dasselbe tun, ist es noch lange nicht dasselbe
(Adelphi)
  Mit Zitat antworten Zitat
Benutzerbild von flow
flow

Registriert seit: 25. Apr 2003
61 Beiträge
 
#3
  Alt 30. Jun 2003, 13:34
Ist TfrmClient bei dir das Child Window?

FLOW
die welt ist eine scheibe

...und aus vinyl
  Mit Zitat antworten Zitat
Benutzerbild von Garby
Garby

Registriert seit: 17. Mär 2003
Ort: Tirol
199 Beiträge
 
Delphi 2005 Professional
 
#4
  Alt 30. Jun 2003, 14:17
Im Prinzip schon, aber weil ich mehrere verschiedene Formulare in diesem Programm habe, die die gleiche Grundfunktionalität haben sollen, habe ich dieses Formular TfrmClient erstellt.
Alle Child-Formulare sind von dieser Klasse abgeleitet.

Da du wahrscheinlich sowieso nur eine Formularklasse brauchst(die du dann öfters erzeugst), kannst du den Code auch direkt ins Formular schreiben.

OK?
Walter
Wenn zwei dasselbe tun, ist es noch lange nicht dasselbe
(Adelphi)
  Mit Zitat antworten Zitat
Benutzerbild von flow
flow

Registriert seit: 25. Apr 2003
61 Beiträge
 
#5
  Alt 30. Jun 2003, 14:22
OK, dacht ich mir. Hat mich nur etwas verwirrt!

Zum Short Cut, eigentlich ist ja Strg+F6 ein standart Befehl um das nächste Window zu erreichen. Aber isteh besser sich nicht immer an den Windows Standart zu halten !

Ich werds mal ausprobieren, danke vielmals!!!

FLOW
die welt ist eine scheibe

...und aus vinyl
  Mit Zitat antworten Zitat
Benutzerbild von flow
flow

Registriert seit: 25. Apr 2003
61 Beiträge
 
#6
  Alt 30. Jun 2003, 14:37
Danke, haut hin !

Hätt ich eigentlich auch selbst drauf kommen können aber was solls !

FLOW
die welt ist eine scheibe

...und aus vinyl
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:39 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