AGB  ·  Datenschutz  ·  Impressum  







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

aktives MDIChild

Ein Thema von [TP]Hawk274 · begonnen am 4. Feb 2003 · letzter Beitrag vom 4. Feb 2003
Antwort Antwort
[TP]Hawk274
(Gast)

n/a Beiträge
 
#1

aktives MDIChild

  Alt 4. Feb 2003, 17:20
Eigentlich hatte ich folgendes vor:
Habe in meinem MDIForm ein MainMenu eingefügt. Über dieses werden dann die einzelne Module, als MDIChild, meines Programmes gestartet. Nun wollte ich aber einigen MDIChilds auch ein eigenes MainMenu geben. Dadurch wurde aber das MainMenu meines MDIForm's mit dem MainMenu des aktuellen MDIChild's überschrieben. Somit konnte ich kein anderes MDIChild mehr öffnen. Das war Käse.
Also dachte ich mir packst du alle Menu Items in das MainMenu vom MDIForm und aktiviert's bzw. deaktiviert's dann die gewünschten Menu Items. Nun stehe ich aber vor dem Problem wie ich ermitteln kann welches MDIChild gerade aktiv ist. Dazu wollte ich die Eigenschaft ActiveMDIChild benutzen doch mit der klappt das irgendwie nicht. Muss auch sagen das ich die Eigenschaft nicht ganz verstanden haben.
Wie weiß ich nun welches MDIChild gerade den Focus hat?
  Mit Zitat antworten Zitat
Alexander

Registriert seit: 28. Aug 2002
Ort: Oldenburg
3.513 Beiträge
 
Turbo Delphi für .NET
 
#2
  Alt 4. Feb 2003, 17:23
also das aktive MDIChildwindow bekommt man so heraus:
Code:
   if ActiveMDIChild is TEditForm then
    TEditForm(ActiveMDIChild)......;
Alexander
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#3
  Alt 4. Feb 2003, 17:25
Vorher sollte man noch überprüfen, ob überhaupt ein aktives MDI Child existiert
Code:
  if ActiveMDIChild <> nil then
   if ActiveMDIChild is TEditForm then
    TEditForm(ActiveMDIChild)......;
......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#4
  Alt 4. Feb 2003, 17:26
Moin Hawk,

angenommen, Du hast zwei verschiedene MDIChild Formulare, TForm2 und TForm3, dann müsste das so gehen:

Delphi-Quellcode:
procedure TForm1.IrgendEineMethodeVonTForm1(ggf. Mit Irgendwelchen Parametern);

var
  MDI1 : TForm2;
  MDI2 : TForm3;

begin
  if (ActiveMDIChild is TForm2) then
  begin
    MDI1 := TForm2(ActiveMDIChild);
    // Mach was mit dem MDI1
    exit;
  end;
  // Mit MDI2 dann analog zu MDI1 usw.
end;
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
proas

Registriert seit: 20. Jan 2003
Ort: Essen
9 Beiträge
 
Delphi 7 Professional
 
#5
  Alt 4. Feb 2003, 17:29
Hallo,
wenn ich Dich richtig verstanden habe möchtest Du doch nur das Menü des Aktiven MDI-Child Fensters anzeigen.

Wenn dem So ist :

Verteile in Deinem MDI-Form den Groupindex der Menüpunkte so, das der Groupindex des MDI-Child-Fenster-Menü-Eintrags einen Groupindex Wert bekommt der sich entweder zwischen den Werten des Hauptformulars oder größer als dessen Werte bewegen.

Beispiel

Menüpunkt Groupindex
Datei 0
Bearbeiten 1
Hilfe 3

Dein 1. Childfenster
Fenster1 2

Dein 2. Childfenster
Fenster2 2

Resultat bei aktivem Childfenster 1
Datei Bearbeiten Fenster1 Hilfe

Resultat bei aktivem Childfenster 2
Datei Bearbeiten Fenster2 Hilfe

Ich hoffe das war das was Du wolltest.
MfG
proas
  Mit Zitat antworten Zitat
darkstone

Registriert seit: 4. Feb 2003
26 Beiträge
 
#6
  Alt 4. Feb 2003, 17:31
Am leichtesten gehst aber mit dem GroupIndex

Im MainMenu des MDIForms die jeweiligen "GroupIndex" der MenuItems setzen (z. B. das erste hat 0, das zweite hat 5)
Im MDIChild ein MainMenu erstellen und GroupIndex z. B. auf 2 sezten.
Beim aktivieren des jeweiligen MDIChilds sollte dann das MainMenu des MDIForms automatisch gemerged werden.
  Mit Zitat antworten Zitat
proas

Registriert seit: 20. Jan 2003
Ort: Essen
9 Beiträge
 
Delphi 7 Professional
 
#7
  Alt 4. Feb 2003, 17:35
... es sollte gemerged werden.

Ich habe da noch das Problem wenn das Menü im Abgeleiteten Formular erweitert wird funktioniert das mit dem mergen nicht mehr richtig.
Auch wird dann der Menü-Eintrag 2pixel höher gezeichnet als die anderen.

Kennt jemand eine Menü-Komponente die mit MDI-Fenstern richtig funktioniert ?
MfG
proas
  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 17:37 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