![]() |
Re: Wieso läuft Timer weiter wenn MessageDlg gezeigt wird?
Also bleibt die Anwendung in gewisser Weise doch stehen, oder nicht?
Irgendwie steh ich auf dem Schlauch :?: |
Re: Wieso läuft Timer weiter wenn MessageDlg gezeigt wird?
Stell dir die Funktion ShowModal einfach als Schleife vor:
Delphi-Quellcode:
Vielleicht ist es dadurch verständlicher, warum die darauffolgende Zeile erst nach der Funktion ShowModal aufgerufen wird: die Anwendung hängt in der Schleife :zwinker:
// Pseudocode
function TForm.ShowModal: TModalResult; begin // Zuerst Enabled aller anderen Fenster auf False setzen for i:=0 to Screen.Form.Count-1 do if Screen.Forms[i] <> Self then Screen.Forms[i].Enabled := False; // Dann die Schleife while not Self.KnopfGedrückt do begin Sleep(1); Application.ProcessMessages; end; // und zum schluss noch die anderen Forms wieder reaktivieren for i:=0 to Screen.Form.Count-1 do if Screen.Forms[i] <> Self then Screen.Forms[i].Enabled := True; end; |
Re: Wieso läuft Timer weiter wenn MessageDlg gezeigt wird?
Also ich habs mal mit C# in .net ausprobiert, da läuft der Timer tatsächlich weiter ... :shock:
Hätte ich nicht gedacht :stupid: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:21 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