Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Showmodal Formular schließen - FEHLER (https://www.delphipraxis.net/110193-showmodal-formular-schliessen-fehler.html)

Overclocker 14. Mär 2008 13:35


Showmodal Formular schließen - FEHLER
 
Hallo zusammen,

habe ein Formular welches ich beim OnCreate showmodal zuweisen, d. h. alle Fenster im Hintergrund sind "deaktiviert".

Wenn ich das Fenster dann wieder schließe, geht es auch kurz weg, doch dann taucht das Fenster nochmal auf und diesmal hat es kein Showmodal (d. h. ich kann auch die hinteren fenster anklicken).

Wieso öffnet er das Formular nochmal und schließt es nicht einfach?

Danke für die Hilfe

Gruß

s-off 14. Mär 2008 13:41

Re: Showmodal Formular schließen - FEHLER
 
Hallo,
Zitat:

Zitat von Overclocker
Wieso öffnet er das Formular nochmal und schließt es nicht einfach?

das kannst wohl nur Du wissen - es sei denn, Du zeigst uns Deinen Code...

mkinzler 14. Mär 2008 13:43

Re: Showmodal Formular schließen - FEHLER
 
Vielleicht solltest du die Form per ShowModal Öffnen als sie beim normalen Öffnen nochmals modal zu öffnen.

Nuclear-Ping 14. Mär 2008 13:46

Re: Showmodal Formular schließen - FEHLER
 
Zitat:

Zitat von Overclocker
habe ein Formular welches ich beim OnCreate showmodal zuweisen

Wenn du das im OnCreate machst, sollte er dir das Fenster auch sofort Modal anzeigen. Ergo hat das auch nix im FormCreate zu suchen sondern modale Fenster werden idR explizit so aufgerufen.
Delphi-Quellcode:
procedure TForm1.ButtonIrgendwasClick(Sender: TObject);
begin
  with TMyIrgendwasForm.Create (Self) do
    try
      ShowModal;
      case ModalResult of
        mrOK: ...
        mrCancel: ...
      end;
    finally
      Free;
    end;
end;

Overclocker 14. Mär 2008 13:47

Re: Showmodal Formular schließen - FEHLER
 
So öffne ich das fenster:

Delphi-Quellcode:
procedure TStammdaten.Kunde_neuClick(Sender: TObject);
begin
application.createform(TStammdaten_dlg,Stammdaten_dlg);
end;
beim Oncreate von Stammdaten_dlg wird dann
Delphi-Quellcode:
showmodal
aufgerufen.


Wie kann ich das mit showmodal sonst anders machen? hab damit noch nicht gearbeitet desh ist mir das ganze noch realtiv neu!



@Nuclear-Ping: dann kommt der fehler: Aus einem sichtbare fenster kann kein modales gemacht werden

Nuclear-Ping 14. Mär 2008 13:51

Re: Showmodal Formular schließen - FEHLER
 
Die Form darf nicht automatisch erzeugt werden. Und auch nicht with MyIrgendwasForm do sondern with TMyIrgendwasForm.Create (Self) do. Du mußt die Form zu dem Zeitpunkt selbst erstellen.

Schmeiss das ShowModal aus dem OnCreate.
Delphi-Quellcode:
procedure TStammdaten.Kunde_neuClick(Sender: TObject);
begin
  with TStammdaten_dlg.Create (Self) do
    try
      ShowModal;
      case ModalResult of
        mrOK: ...
        mrCancel: ...
      end;
    finally
      Free;
    end;
end;

Overclocker 14. Mär 2008 13:56

Re: Showmodal Formular schließen - FEHLER
 
ich machs genau so wie dus mir sagst (copy paste^^) aber der fehler kommt immer noch ...

Nuclear-Ping 14. Mär 2008 13:59

Re: Showmodal Formular schließen - FEHLER
 
Dann stell halt mal im OI das Visible von der TStammdaten_dlg auf False.

Overclocker 14. Mär 2008 14:03

Re: Showmodal Formular schließen - FEHLER
 
danke das wars :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:39 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz