Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Thread-Probleme (https://www.delphipraxis.net/79389-thread-probleme.html)

3_of_8 21. Okt 2006 15:24


Thread-Probleme
 
Morgen.

Ich hab hier grad ein paar richtig fiese Probleme.

Wenn ich das richtig verstanden habe, laufen Indy-Server-Sockets in einem eigenen Thread.

Dieser Thread ruft beim Dateneingang das Ereignis OnExecute auf, beim Connecten und Disconnecten auch bestimmte Ereignisse.

Soo, und jetzt kommts:
Ich will beim Disconnecten eine MessageBox anzeigen. Das Problem: showmessage ist ja mehr oder weniger eine GUI-Funktion und die soll man nunmal nur aus dem Hauptthread heraus aufrufen. Das sorgt natürlich dafür, dass meine Anwendung recht unschön mit diversen Exceptions röchelnd zugrunde geht.

Genauergesagt, verschiedene Canvasses beschweren sich, dass ich nicht auf sie zeichnen darf oder sie zeichnen einfach an bestimmten Stellen ziemlichen Mist, der da eigentlich nichts verloren hat.

Wie verhindere ich das am besten?

Sunlight7 21. Okt 2006 18:44

Re: Thread-Probleme
 
ShowMessage aus einem Synchronize heraus aufrufen bzw. GUI kann man auch aus nem Thread heraus aufrufen, mit ShowMessage hatte ich noch keine Probleme, die kommen eher mit den VCL Komponenten des Hauptthreads.

3_of_8 21. Okt 2006 18:47

Re: Thread-Probleme
 
Dieser Thread wird von den Indys kontrolliert...

Ich kann ihn nicht synchronisieren.

Aber wenn ShowMessage noch geht, ist es ja in Ordnung... Trotzdem habe ich recht seltsame Probleme mit dem Neuzeichnen.

Sunlight7 21. Okt 2006 18:53

Re: Thread-Probleme
 
Deffiniere.

Es kann aber auch an Delphis Struktur liegen, weil die Handles sich ständig ändern.
Besonders beim Zeichnen in den Threads kenne ich diese Probleme, deshalb erstelle ich dafür eigene Canvas und Bitmaps, damit ich die Handles kontrollieren kann.

3_of_8 21. Okt 2006 18:59

Re: Thread-Probleme
 
Ich zeichne eigentlich nur im Hauptthread. Das Problem an der Sache ist nur, dass mir das Ding in meinem Canvas seltsamerweise EInvalidOperations liefert oder für einen Augenblick ohne ersichtlichen Grund ein lila Quadrat zeichnet.

Sunlight7 21. Okt 2006 19:12

Re: Thread-Probleme
 
Die Kompo selber zeichnet irgendwas irgendwo hin?

3_of_8 21. Okt 2006 19:28

Re: Thread-Probleme
 
Ja, die hab ich geschrieben. :mrgreen:

Und die überzeichnet sich kurzzeitig selbst teilweise mit lila Farbe.

Sunlight7 21. Okt 2006 19:38

Re: Thread-Probleme
 
Schon probiert, auf einem extra DC zu Zeichnen, bzw. dieses immer vor dem Zeichnen zu "holen" und danach zu "entlassen" (GetDC, ReleaseDC)?
Das hilft da meistens.

3_of_8 21. Okt 2006 19:41

Re: Thread-Probleme
 
Warum?

Ich zeichne nur in der Paint-Methode meiner Komponente.

Sunlight7 21. Okt 2006 19:51

Re: Thread-Probleme
 
Weil, wenn in Threads gezeichnet wird da manches mal Probleme auftreten.
Jedenfalls ist das meine Erfahrung, nicht Delphi Handles zu verwenden um die Fehler zu vermeiden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:54 Uhr.
Seite 1 von 2  1 2      

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