AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Aktives MDIChild nach Schliessen eines MDIChild
Thema durchsuchen
Ansicht
Themen-Optionen

Aktives MDIChild nach Schliessen eines MDIChild

Ein Thema von handson · begonnen am 18. Nov 2010 · letzter Beitrag vom 1. Dez 2010
Antwort Antwort
Seite 2 von 2     12   
wolfgang_SV

Registriert seit: 9. Nov 2007
Ort: Neumünster
39 Beiträge
 
#11

AW: Aktives MDIChild nach Schliessen eines MDIChild

  Alt 18. Nov 2010, 18:22
Ich will es ja auch gar nicht wissen..

Handson wollte es wissen , zumindest hab ich so seine Anfrage verstanden.
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#12

AW: Aktives MDIChild nach Schliessen eines MDIChild

  Alt 18. Nov 2010, 18:27
Dafür weist wenigstens Du was eine MDI-Anwendung ist.
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
wolfgang_SV

Registriert seit: 9. Nov 2007
Ort: Neumünster
39 Beiträge
 
#13

AW: Aktives MDIChild nach Schliessen eines MDIChild

  Alt 18. Nov 2010, 18:33
ja du doch auch, denk ich.

ich weiß nur nichts mit deinem delphi-code anzufangen..
  Mit Zitat antworten Zitat
handson

Registriert seit: 18. Jan 2007
Ort: Delmenhorst
113 Beiträge
 
Delphi 2007 Professional
 
#14

AW: Aktives MDIChild nach Schliessen eines MDIChild

  Alt 19. Nov 2010, 15:40
Der Sinn, wozu ich den Namen brauche ist recht einfach. Unten kurz oberhalb der Statusleiste ist ein TabControl. Für jedes offene MDI mache ich ein Tab auf, so dass man damit durch die einzelnen Childs durchklicken kann. Meine MDI sind immer maximiert und können nicht kleiner gemacht werden, daher kann man nicht anders wechseln.
Nun, wenn sich ein Child schließt, dann bekommt der Tab eine Meldung, dass er sich sich löscht. Das geht, aber ich möchte das Tab für das jetzige aktive Child auch in den Vordergrund bringen , also auch auf Aktiv setzen. Und daran scheitert es momentan bei mir.
Soweit die Problembeschreibung.
Stephan Faust
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#15

AW: Aktives MDIChild nach Schliessen eines MDIChild

  Alt 19. Nov 2010, 16:16
dann setze das Tab doch im OnActivate der MDI-Children.

Aber die Beschreibung klingt eher so als ob Du eine SDI-Anwendung haben wolltest bei der Forms auf einem Tabsheet gedockt werden...
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
wolfgang_SV

Registriert seit: 9. Nov 2007
Ort: Neumünster
39 Beiträge
 
#16

AW: Aktives MDIChild nach Schliessen eines MDIChild

  Alt 19. Nov 2010, 16:23
der Aufruf sendmessage(client,wm_mdigetactive,0,0)
liefert dir das handle des aktiven MDI_childwindows zurück,
wobei client das handle des MDI_clientwindows ist..
  Mit Zitat antworten Zitat
handson

Registriert seit: 18. Jan 2007
Ort: Delmenhorst
113 Beiträge
 
Delphi 2007 Professional
 
#17

AW: Aktives MDIChild nach Schliessen eines MDIChild

  Alt 30. Nov 2010, 09:39
der Aufruf sendmessage(client,wm_mdigetactive,0,0)
liefert dir das handle des aktiven MDI_childwindows zurück,
wobei client das handle des MDI_clientwindows ist..
Irgendwie verstehe ich das nicht richtig... Wieso muss ich das Handle des MDI_clientwindows benutzen, wenn ich doch das als aktives haben möchte?
Kann man denn nicht irgendwie die Haupt-Anwednung fragen, welches seiner MDI's gerade aktiv ist? Gibt es denn nicht irgendein Event, dass ausgelöst wird, wenn gerade ein MDI geschlossen wird?
Stephan Faust
  Mit Zitat antworten Zitat
Benutzerbild von Guido R.
Guido R.

Registriert seit: 5. Jul 2007
141 Beiträge
 
Delphi 12 Athens
 
#18

AW: Aktives MDIChild nach Schliessen eines MDIChild

  Alt 1. Dez 2010, 18:58
Hi !

Grundsätzlich hat Bummi hier Recht. Was Du beschreibst ist am Besten über ein TabSheet und gedockte Forms zu realisieren. MDIs sind dann überflüssig und die ganze Problematik stellt sich erst gar nicht.
Wenn Du Dir das einmal ansehen möchtest wie sowas funktioniert, dann such mal in YouTube nach "Delphi Programming Tutorial #32 - Dockable Forms" und "Delphi Programming Tutorial #33 - Dockable Forms 2"

Da Du aber offenbar schon mit den MDIs angefangen hast ...

Die Holzhammer-Methode wäre mit Hilfe tApplicationEvents.OnIdle in Deiner MainForm zu überprüfen, ob sich MainForm.ActiveMDIChild geändert hat. - (Würde ich aber nicht empfehlen)

Alternativ setzt Du den Tab mit dem OnActivate-Event der einzelnen MDI-Children. Schließt Du den aktuellen MDI-Child, bekommt ein anderes (sofern vorhanden) den Focus und löst diesen Event aus.

Solltest Du Zugang zu den TMS-Komponenten haben gibt es noch eine weitere sehr komfortable Lösung :
das tAdvOfficeMDITabSet - Hier fügst Du im Create Deines MDI-Childs den Befehl
Code:
MainForm.AdvOfficeMDITabSet.AddTab(MDIChild);
ein und die Komponente übernimmt alles weitere. Der Tab wird geschlossen, wenn der MDIChild geschlossen wird, Du kannst den Child auch über den Tab schließen etc...

Ich hoffe, das hilft Dir weiter.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 23:36 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