AGB  ·  Datenschutz  ·  Impressum  







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

Modales MDIChild

Ein Thema von HHick123 · begonnen am 5. Aug 2008 · letzter Beitrag vom 7. Aug 2008
Antwort Antwort
HHick123

Registriert seit: 23. Jul 2007
73 Beiträge
 
#1

Modales MDIChild

  Alt 5. Aug 2008, 10:27
Hallo, momentan wachsen mir gerade wieder einmal graue Haare...
Was mach' ich falsch?

ich erzeuge zur Laufzeit ein fsMDIChild

Delphi-Quellcode:
 Form3:=TForm3.Create(Self);
 Form3.ShowModal;
Bei ShowModal erhalte ich den Fehler:
EInvalidOperation: "Cannot make a visible window modal"

Hmm. Visible? Ich seh nix. Form3.Visible im Objektinspektor ist ausserdem eh' false...
Na gut, dann setzt ich es halt vorher auf false:

Delphi-Quellcode:
 Form3:=TForm3.Create(Self);
 Form3.Visible:=false;
 Form3.ShowModal;
Haha, der war gut, jetzt kommt:
EInvalidOperation: "Cannot hide an MDI child form"



Also, das muss doch irgendwie gehen, oder?
Mit Form3.Show funktioniert's...

Hat ev. jemand eine Idee?
  Mit Zitat antworten Zitat
HHick123

Registriert seit: 23. Jul 2007
73 Beiträge
 
#2

Re: Modales MDIChild

  Alt 5. Aug 2008, 10:41
Hmm, hab' gerade folgendes gemerkt: Sobald ich im Objektinspektor FormStyle=fsMDIChild setze, springt auch Visible auf true!

D.h., ein MDIChild ist anscheinend prinzipiell visible...

Aber das muss doch irgendwie gehen, dass ich es modal anzeige, oder nicht?
  Mit Zitat antworten Zitat
DelphiKlaus

Registriert seit: 18. Okt 2006
100 Beiträge
 
Delphi 6 Professional
 
#3

Re: Modales MDIChild

  Alt 5. Aug 2008, 11:49
Hallo,

was macht es denn für einen Sinn, ein MDI-Child modal aufzuschalten? Die Funktionen wie kaskadieren oder Fenster anordnen lassen sich doch sowieso nicht mehr bedienen, wenn ein modales Formular geöffnet ist.

MfG

Klaus
  Mit Zitat antworten Zitat
HHick123

Registriert seit: 23. Jul 2007
73 Beiträge
 
#4

Re: Modales MDIChild

  Alt 5. Aug 2008, 16:44
Der Sinn sei mal dahingestellt. Ich soll nur das Userinterface mit Delphi so nachprogrammieren, wie es jetzt ist...
  Mit Zitat antworten Zitat
dfried

Registriert seit: 16. Aug 2005
486 Beiträge
 
#5

Re: Modales MDIChild

  Alt 5. Aug 2008, 17:06
Zitat von HHick123:
Der Sinn sei mal dahingestellt. Ich soll nur das Userinterface mit Delphi so nachprogrammieren, wie es jetzt ist...
Dann ist es aber sicher kein modales MDIChild sondern einfach ein ganz normales Modales Fenster, oder? Und das geht ja problemlos.
  Mit Zitat antworten Zitat
sonicus83

Registriert seit: 4. Aug 2008
33 Beiträge
 
#6

Re: Modales MDIChild

  Alt 7. Aug 2008, 10:08
In meinem Projekt habe ich auch die Notwendigkeit, ein MDI-Child unter Umständen mal modal anzuzeigen. Konkreter: Es ist ein Such-Fenster. Wenn ich normal suche ist es ein MDI-Child, wenn ich für einen Wert einen Datensatz suche ist es ein modales Fenster.

Lösung bei mir:

Delphi-Quellcode:
procedure TvSucheAngebot.setModal(modal: boolean);
begin
  inherited;
  if modal then begin
    formStyle := fsNormal;
    caption := 'Angebot zuweisen';
    BorderIcons := BorderIcons - [biSystemMenu];
    visible := false;
  end else begin
    formStyle := fsMDIChild;
    caption := 'Angebote suchen';
    BorderIcons := BorderIcons + [biSystemMenu];
    visible := true;
  end;
end;
Und dann entsprechend vorher setModal aufrufen und entweder .show oder .showmodal
Das könnte man sicher noch eleganter lösen, aber so funktionierts bei mir.
  Mit Zitat antworten Zitat
HHick123

Registriert seit: 23. Jul 2007
73 Beiträge
 
#7

Re: Modales MDIChild

  Alt 7. Aug 2008, 11:13
Aber dann hast Du doch
entweder
- ein modales, normales Fenster
oder
- ein nicht-modales, MDIChild-Fenster

Aber ich hätte ja gerne ein modales MDIChild-Fenster...
  Mit Zitat antworten Zitat
sonicus83

Registriert seit: 4. Aug 2008
33 Beiträge
 
#8

Re: Modales MDIChild

  Alt 7. Aug 2008, 12:45
Nach allem, was ich rausgefunden hatte, geht es nicht.
Was sollte auch der Sinn sein?

MDI-Fenster sollen es ja auch gerade erlauben, mehrere "Inhaltsfenster" parallel anzuzeigen,
Modale sollen hingegen alle weiteren Fenster überdecken und eine Eingabe erzwingen.

Bist du sicher, dass das ein modales MDI-Child ist, oder dass da nicht andere Tricks eingesetzt werden? Du kannst ja z.B. die MDI-Form dazu bewegen, dass sie ein wechsel des Formulars nicht zulässt..
  Mit Zitat antworten Zitat
HHick123

Registriert seit: 23. Jul 2007
73 Beiträge
 
#9

Re: Modales MDIChild

  Alt 7. Aug 2008, 21:15
Zitat:
Bist du sicher, dass das ein modales MDI-Child
Ganz sicher bin ich nicht. Aus verschiedenen Gründen kann ich das "Vorlage" Programm gerade nicht ablaufen lassen.

Aber ich bin fast sicher, das es so war, denn was hätte das Hauptfenster denn sonst für einen Sinn, es besteht nur aus einem Menü, einem Statusbar, einer Leiste mit Icons oben und einem Grauen Bereich. Wenn das keine MDI-Childs wären, dann wäre es ja gleich besser das Hauptfenster so ähnlich wie bei Delphi6 (z.B.) zu machen, d.h. ohne "grauen Bereich, in dem sich MDI-Childs bewegen".... Vieleicht wäre das sowieso sinnvoller...
  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 16:45 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