AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

MDi-Child ruft modales Fenster auf

Offene Frage von "copris"
Ein Thema von copris · begonnen am 26. Mai 2010 · letzter Beitrag vom 26. Mai 2010
Antwort Antwort
copris

Registriert seit: 21. Apr 2010
3 Beiträge
 
Delphi 2010 Enterprise
 
#1

MDi-Child ruft modales Fenster auf

  Alt 26. Mai 2010, 15:55
In einer MDI-Applikation kann das gleiche MDI-Fenster mehrmals geöffnet sein.
In diesem Fenster rufe ich ein Dialog-Fenster mit showmodal auf, was im zuletzt geöffneten Fenster funktioniert.
Wechsle ich nun zu einem anderen Fenster bekomme ich eine Fehlermeldung, ebenso wenn ich das zuletzt geöffnete Fenster schliesse.
ShowModal funktioniert immer nur mit dem zuletzt geöffnetem Fenster.

Wie muss ich das Lösen, dass ShowModal immer das Fenster mit dem aktuellen Fokus reagiert?

Aufruf MDI-Child aus Hauptfenster
Delphi-Quellcode:
procedure TfrmMain.CreatefrmStamm(const _Tag: integer; const Name: string);
  var
    Child: TfrmStamm;
  begin
    menuTxt := Name;
    _CountWindow := _CountWindow +1;
    Application.CreateForm(TfrmStamm, frmStamm);
  frmStamm.Caption := Name + '_' + IntToStr(MDIChildCount);
  end;
Aufruf Modales Fenster von MDI-Child
Delphi-Quellcode:
            with TpDlgNew.Create(self) do
              try
                ShowModal;
              finally
                Free;
                end;

Besten Dank für eure Antworten.
  Mit Zitat antworten Zitat
Benutzerbild von Olli73
Olli73

Registriert seit: 25. Apr 2008
Ort: Neunkirchen
662 Beiträge
 
#2

Re: MDi-Child ruft modales Fenster auf

  Alt 26. Mai 2010, 16:35
Zitat von copris:
In einer MDI-Applikation kann das gleiche MDI-Fenster mehrmals geöffnet sein.
Delphi-Quellcode:

    Application.CreateForm(TfrmStamm, frmStamm);
  frmStamm.Caption := Name + '_' + IntToStr(MDIChildCount);
  end;
Hallo!

Du schreibst leider nicht, welche Fehlermeldung an welcher Stelle kommt, aber wenn ich eine (MDI-)App programmiere, nehme ich die childs aus der Liste der automatisch erstellten Formulare UND vor allem auch die Variable aus dem erstellten Formular heraus, hier also frmStamm. Das Formular erstelle ich dann mit TfrmStamm.Create(Application) ...

Dann kommt man nämlich nicht mehr in Versuchung frmStamm.Irgendwas zu schreiben, was bei dir immer auf das zuletzt erzeugte Formular zeigt. Ich nehme mal an, dass ein solcher Aufruf den Fehler bei dir auslösen könnte...

Gruß,
Olli
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#3

Re: MDi-Child ruft modales Fenster auf

  Alt 26. Mai 2010, 17:22
Zitat von copris:
Delphi-Quellcode:
procedure TfrmMain.CreatefrmStamm(const _Tag: integer; const Name: string);
  var
    Child: TfrmStamm;
  begin
    menuTxt := Name;
    _CountWindow := _CountWindow +1;
    Application.CreateForm(TfrmStamm, frmStamm);
  frmStamm.Caption := Name + '_' + IntToStr(MDIChildCount);
  end;
Alleine das kann schon gar nicht funktionieren. Damit das funktioniert benötigst du eine class procedure. Du hast also das Formular erzeugt und rufst diese Prozedur auf. Darin erzeugt sich das Formular nochmals. Eines der beiden sieht man aber nicht, weil es noch wartet, sichtbar gemacht zu werden.
Bitte überdenke nochmals deine Struktur mit der MDI-Anwendung und befolge auch den Hinweis meines Vorredners.

Bernhard
Bernhard
Iliacos intra muros peccatur et extra!
  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 23:31 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