![]() |
Leinwand / Bild erlaubt kein Zeichnen
Hallo !
Da haben wir mal was neues ! Fehlermeldung im Debugger : Leinwand / Bild erlaubt kein Zeichnen ... Und das Ganze bei einer vorgefertigten MessageDlg Source :
Delphi-Quellcode:
Anzumerken wäre vielleicht noch, daß das "aufrufende" Fenster per self.enabled := false; disabled wurde (enable := true bringt aber auch nix)....
...
Result := not (MessageDlg('...',mtError,[mbretry],0) = idRetry); ... Was könnte das sein ? Gruss maanton |
Re: Leinwand / Bild erlaubt kein Zeichnen
arbeitest du in deinem Programm irgendwo mit Threads?
|
Re: Leinwand / Bild erlaubt kein Zeichnen
ja, nahezu die komplette Datenbearbeitung der eingegebenen Daten erfolgt innerhalb eines Threads. Nach Abschluss der
Bearbeitung (deshalb das Fenster vor Eintritt in Thread per self.enabled := false) soll das Fenster wieder durch den User manipulierbar sein. Im Fehlerfalle soll dem User eine Meldung angezeigt werden - hier haben wir den messagedlg. Ich habe in einem anderen thread des Forums (da gings um showmessage) etwas von TThread.synchronize gelesen. Da ging es aber darum, dass das Mutterfenster des Threads mit canvas bearbeitet wird. Hier haben wir aber ein eigenes Fenster -eben den messagedlg? deshalb versteh ich das nicht ganz... |
Re: Leinwand / Bild erlaubt kein Zeichnen
MessageDlg ist intern auch nur ein TForm. Generell sollte vom Thread aus nichts visuelles geschehen. Das höchste der Gefühle sind Apifunktionen wie MessageBox welche visuelle Ausgaben machen.
|
Re: Leinwand / Bild erlaubt kein Zeichnen
Zitat:
Die Fehlermeldung ist sehr verwirrend und kommt auch, wenn du im Grunde nichts mit einer Leinwand/Canvas machen willst. Intern muss er wohl auch bei einer MessageBox was zeichnen, oder? ;) Grüße |
Re: Leinwand / Bild erlaubt kein Zeichnen
oder eben die MessageBox verwenden. Die sollte nicht viel anders aussiehen als der MessageDlg ist aber ThreadSafe.
|
Re: Leinwand / Bild erlaubt kein Zeichnen
Hey !
Erinnert mich an meine alten Windows 3.0 Programmierzeiten. Dachte, das gibts gar nicht mehr :wall: MessageBox(HWND,...) und funktioniert auch ! :-D Vielen Dank für die schnelle und präzise Hilfe ... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:58 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