Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Dialog schließt sich nicht von selbst (https://www.delphipraxis.net/9872-dialog-schliesst-sich-nicht-von-selbst.html)

phlux 6. Okt 2003 19:25


Dialog schließt sich nicht von selbst
 
Moin :hi:
Ich schreibe gerade einen Dialog für mein Programm der den Fortschritt der Suche Visualisiert. So weit so gut. Nachdem ich im OnActivate Event des Dlg's mit Search die Suche starte, will sich der Dlg nicht mehr von alleine schließen lassen (Die Suche ist abgeschlossen). Ich lasse den Dlg mit ShowModal anzeigen, und wollte ihn nach erfolgreicher Suche mit
Delphi-Quellcode:
ModalResult := mrOK;
wieder schließen klappt aber nicht auch ein einfaches
Delphi-Quellcode:
Close;
tut's nicht. Was tun?? :?

mfg phluphie

SirThornberry 6. Okt 2003 22:05

Re: Dialog schließt sich nicht von selbst
 
Kannst du mal den Quelltext posten, zumindest den teil um den es geht, den rest kannst du ja rausnehmen. Manchmal liegts einfach an einem bug in der Delphi version. Bsp: Drucken bei Delphi 6 = immer Y-Koordinate < 0 in meiner jetzigen Version nicht mehr außerdem kommt jetzt beim textdrucken ein rand herum.. kann also sein dein Delphi hat einen bug.. naja, poste einfach mal den source, vielleicht lässt sich was machen

phlux 7. Okt 2003 12:13

Re: Dialog schließt sich nicht von selbst
 
Morgen!
Also aufrufen tu ich den Dialog/Form wie folgt:
Delphi-Quellcode:
procedure TMainForm.FormActivate(Sender: TObject);
begin
  with TdlgSearch.Create(Self) do
  begin
    try
      ShowModal;
    finally
      Free;
    end;
  end;
end;
Anschließend passiert folgendes:
Delphi-Quellcode:
procedure TdlgSearch.FormActivate(Sender: TObject);
begin
  StartSearch;
end;
Dann das:
Delphi-Quellcode:
procedure TdlgSearch.StartSearch;
begin
  //Hier findet eine lange und qualvolle Suche statt ;)
  ModalResult := mrOK;
end;
Eigentlich müsste die Form danach doch wieder verschwinden, da ich doch per Hand das ModalResult auf mrOK setzte oder??

mfg phlux

sakura 7. Okt 2003 12:14

Re: Dialog schließt sich nicht von selbst
 
Das Problem ist das Activate-Ereignis, in diesem kannst Du keinen Befehl zum wieder schließen ausführen :|

...:cat:...

phlux 7. Okt 2003 12:18

Re: Dialog schließt sich nicht von selbst
 
Ahhh ich werd noch verrückt :shock: aber wie stelle ich es jetzt an, dass der Dialog gezeigt wird, danach die Suche ausgeführt wird und dann der Dialog geschlossen wird. Weiß jemand Rat?? :?

sakura 7. Okt 2003 12:32

Re: Dialog schließt sich nicht von selbst
 
Versuche mal anstatt des Close ein

Delphi-Quellcode:
SendMessage(Handle, WM_CLOSE, 0, 0);
...:cat:...

phlux 7. Okt 2003 12:34

Re: Dialog schließt sich nicht von selbst
 
Nein, funktioniert auch nicht :(

Christian Seehase 7. Okt 2003 13:14

Re: Dialog schließt sich nicht von selbst
 
Moin Phlux,

ich hab' da einen Workaround für Dich:

Statt die StartSearch Prozedur über OnActivate o.ä. zu starten, starte sie mit einem Timer.

Delphi-Quellcode:
procedure TDlgSearch.Timer1Timer(Sender: TObject);
begin
  Timer1.Enabled := false;
  StartSearch;
  ModalResult := mrOK;
end;
Auf was Du das Interval einstellst musst Du mal ausprobieren.

phlux 7. Okt 2003 13:25

Re: Dialog schließt sich nicht von selbst
 
Hmm, das mit dem Timer ist mir auch schon in den Sinn gekommen, aber ich hab die Idee schnell wieder verschmissen :roll: , aber wenn mir schon ein Mod der DP dazu rät werd ich es wohl so machen, ;) vielleicht findet sich ja irgendwann eine bessere Lösung :?

mfg phluphie :hi:

Christian Seehase 7. Okt 2003 13:37

Re: Dialog schließt sich nicht von selbst
 
Moin Phlux,

so funktioniert es wenigstens ;-)

Ich hab' Deine Variante auch mal ausprobiert und war selber überrascht, dass es nicht funktioniert, ohne wenigsten eine Fehlermeldung zu produzieren.
Es werden nämlich OnCloseQuery und OnClose aufgerufen, nur hat das keine Wirkung.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:05 Uhr.
Seite 1 von 3  1 23      

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