AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Problem mit Liste der geöffneten MDI-Child-Fenster

Problem mit Liste der geöffneten MDI-Child-Fenster

Ein Thema von hincapie · begonnen am 1. Mär 2006 · letzter Beitrag vom 6. Mär 2006
Antwort Antwort
Seite 2 von 2     12
uwewo

Registriert seit: 14. Jul 2004
Ort: Karlsruhe
479 Beiträge
 
Delphi 2006 Professional
 
#11

Re: Problem mit Liste der geöffneten MDI-Child-Fenster

  Alt 3. Mär 2006, 11:02
Ich kann das jetzt schlecht nachstellen, aber kannst Du den Index des
zu aktivierende Fenster nicht über seinen Namen bestimen.
Uwe
  Mit Zitat antworten Zitat
Benutzerbild von hincapie
hincapie

Registriert seit: 24. Mär 2005
200 Beiträge
 
Delphi 5 Professional
 
#12

Re: Problem mit Liste der geöffneten MDI-Child-Fenster

  Alt 3. Mär 2006, 11:40
Zitat von uwewo:
Ich kann das jetzt schlecht nachstellen, aber kannst Du den Index des
zu aktivierende Fenster nicht über seinen Namen bestimen.
Ja, aber wie komme ich an den Namen, wenn ich die TabSheets doch erst zur Laufzeit erstellen lasse und daher den Namen vorher gar nicht kenne?
  Mit Zitat antworten Zitat
Benutzerbild von Flocke
Flocke

Registriert seit: 9. Jun 2005
Ort: Unna
1.172 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#13

Re: Problem mit Liste der geöffneten MDI-Child-Fenster

  Alt 3. Mär 2006, 21:39
Du kannst anhand der Caption suchen (Tabsheet.Caption = MDIChild.Caption).

Besser: definiere deine eigene TMDIChildTabSheet-Klasse mit
Delphi-Quellcode:
type
  TMDIChildTabSheet = class(TTabSheet)
  private
    FMDIChild: TForm;
  public
    property MDIChild: TForm read FMDIChild write FMDIChild;
  end;
Die Tabsheets erzeugst du dann so:
Delphi-Quellcode:
for c:=0 to MDIChildCount -1 do
  if not (csDestroying in MDIChildren[c].ComponentState) then
    with tMDIChildTabSheet.Create(Self) do
    begin
      PageControl := PageControl1;
      caption := MDIChildren[c].caption;
      MDIChild := MDIChildren[c];
    end;
Und dann kannst du es einfach mit
Delphi-Quellcode:
procedure TFrameForm.PageControl1Change(Sender: TObject);
begin
  TMDIChildTabSheet(PageControl1.ActivePage).MDIChild.BringToFront;
end;
nach vorne holen.
Volker
Besucht meine Garage
Aktuell: RtfLabel 1.3d, PrintToFile 1.4
  Mit Zitat antworten Zitat
Benutzerbild von hincapie
hincapie

Registriert seit: 24. Mär 2005
200 Beiträge
 
Delphi 5 Professional
 
#14

Re: Problem mit Liste der geöffneten MDI-Child-Fenster

  Alt 6. Mär 2006, 07:35
@ flocke: Super, funktioniert soweit ganz klasse, danke!!

Jetzt habe ich aber noch ein Problem:
Wenn ich nun mit einem Mausklick ein Childfenster aktiviere, sollte auch der entsprechende TabSheet markiert werden.
D.h. irgendwas in der Richtung:
  PageControl1.ActivePage := ActiveMDIChild.Caption; Funktioniert so natürlich nicht, aber so ähnlich müßte es doch sein, oder?
Und wo müßte die Zuweisung erfolgen, im onActivate des ChildFormulars?
  Mit Zitat antworten Zitat
Benutzerbild von Flocke
Flocke

Registriert seit: 9. Jun 2005
Ort: Unna
1.172 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#15

Re: Problem mit Liste der geöffneten MDI-Child-Fenster

  Alt 6. Mär 2006, 08:21
Du musst ja nur das TabSheet suchen, dass sich auf ActiveMDIChild bezieht:
Delphi-Quellcode:
for c := 0 to tMDIChildTabSheet.PageCount - 1 do
  if TMDIChildTabSheet(tMDIChildTabSheet.Pages[c]).MDIChild = ActiveMDIChild then
    tMDIChildTabSheet.ActivePageIndex := c;
Volker
Besucht meine Garage
Aktuell: RtfLabel 1.3d, PrintToFile 1.4
  Mit Zitat antworten Zitat
Benutzerbild von hincapie
hincapie

Registriert seit: 24. Mär 2005
200 Beiträge
 
Delphi 5 Professional
 
#16

Re: Problem mit Liste der geöffneten MDI-Child-Fenster

  Alt 6. Mär 2006, 09:16
Hallo flocke:
meinst Du etwa so:
Delphi-Quellcode:
  for c := 0 to MDIChildCount - 1 do
  if TMDIChildTabSheet(PageControl1.Pages[c]).MDIChild = ActiveMDIChild then
    PageControl1.ActivePageIndex := c;
Im OnActivate des ChildFensters eingebunden funzt es!!
Vielen Dank nochmal!!
  Mit Zitat antworten Zitat
Benutzerbild von Flocke
Flocke

Registriert seit: 9. Jun 2005
Ort: Unna
1.172 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#17

Re: Problem mit Liste der geöffneten MDI-Child-Fenster

  Alt 6. Mär 2006, 11:00
Zitat von hincapie:
Hallo flocke:
meinst Du etwa so:
Ja -räusper- genau so ... hatte ich doch auch geschrieben, oder?
Volker
Besucht meine Garage
Aktuell: RtfLabel 1.3d, PrintToFile 1.4
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 11:42 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