Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Thread schreibt wirre Zeichen auf den Bildschirm


colaka - Mo 27.06.11 11:38
Titel: Thread schreibt wirre Zeichen auf den Bildschirm
Hallo,

ich führe täglich mehrere Downloads durch. Seitdem ich diese in einen separaten Thread ausgelagert habe, erscheinen an manchen Tagen wirre Zeichen am linken oberen Bildschirmrand ( siehe Bild). Das Programm an sich funktioniert einwandfrei, aber mich würde halt interessieren, warum diese Zeichen erscheinen, und natürlich auch, wie ich das verhindern kann. Ich habe auch noch keinen Zusammenhang erkennen können, warum sie an manchen Tagen auftreten und an anderen wieder nicht.

Danke Ebi


Gausi - Mo 27.06.11 11:44

Also entweder ist dein Monitorkabel empfindlich gegen tagesabhängige Schwankungen der Erdstrahlung, oder bei deinen Threads läuft etwas schief, Stichwort Synchronisation. :nixweiss:


BenBE - Mo 27.06.11 11:49

Du darfst keine GUI direkt aus einem Thread ansprechen, weil die GDI in der VCL an den Hauptthread gebunden ist. Der Fehler ist, dass Dr da irgendwo ein ungültigs Handle hat und daher auf den Desktop schreibt.

Stichwort hier wie bereits gesagt Synchronisation.
Trenne visuelle Ausgaben und deine Threads sauber.


colaka - Mo 27.06.11 20:40

Hallo,

also jetzt wird mir natürlich einiges klar. Ich habe im Hauptprogramm im IdFTP-OnWork die Steuerung der Gauge und die Geschwindigkeitsanzeige laufen. Davon wird dann wohl der Fehler kommen.

Aber wie kann man denn dann die Progressbar und die Geschwindigkeitsanzeige ansteuern? Oder muß ich dann eben darauf verzichten?

Danke Ebi


Boldar - Mo 27.06.11 20:49

Wenn du mit TThread arbeitest, musst du synchronize benutzen.
Ansonsten die Forensuche.