![]() |
Neu Zeichnen im Thread?
Ein altbekanntes Problem, wofür ich immernoch eine Lösung suche:
Eine Funktion (nicht thread-sicher! "Application.ProcessMessages" nicht einbaubar!) braucht sehr lange, das Formular wird lange Zeit nicht aktualisiert. Wie kann man die Anwendung zwingen sich zwischendurch trotzdem neu zu zeichnen? Meine erste Idee war das "Paint" oder ProcessMessages aus einem Thread aufzurufen der nebei läuft und nur das Formular neu Zeichnen sollte - aber so einfach funktioniert es natürlich nicht. Mußte ich allerdings erst praktisch testen... :? Ich komme da nicht weiter, hat jemand von euch noch eine kreative Idee die funktioniert? Gruß Sven |
Re: Neu Zeichnen im Thread?
Ruf doch die Windows-Funktion InvalidateRect
Die schickt dann schon die Nachrichten an dein Fenster. |
Re: Neu Zeichnen im Thread?
Zitat:
Korrigiert mich, falls ich etwas falsch verstanden habe. Trotzdem, danke für die Anregung! |
Re: Neu Zeichnen im Thread?
Dann lager die Funktion dochin einen Thread aus. Oder was spricht dagegen?
Und was heißt, dass die Funktion nicht thread-sicher ist? So lange du sie nur einmal in einem separaten Thread aufrufst und nicht in mehreren Threads parallel aufrufst, sollte es keine Probleme geben. Letzt endlich mach es keinen Unterschied, ob die Funktzion einml im primär Thread auf gerufen wird oder einmal in einem sekundären Thread. Problematisch wird es erst, wenn du eien nicht thread-sichere Funktion in mehrern sekundär Threads gleichzeitig aufrufst. |
Re: Neu Zeichnen im Thread?
Also ich hab das so verstanden:
Du hast einen Thread. In diesen Thread wird etwas gemacht. Du hast ein Formular in dem etwas dargestellt wird, was von den Werten die in diesem Thread beeinflusst werden abhängt. Wenn was nicht stimmt korrigiere mich. Daher Funktioniert InvalidateRect - ich mach's ja selbst so. |
Re: Neu Zeichnen im Thread?
@neolithos
Ne, leider gibt's keinen thread in dem was gemacht wird. Alles läuft in der Hauptanwendung (ist halt so gewachsen, nicht von mir und so weiter...) Zitat:
Werde über Erfolg/Misserfolg berichten .... |
Re: Neu Zeichnen im Thread?
Hier das Ergebnis meiner Tests: Es funtkioniert teilweise.
Ein großteil Teil der besagten Funktionen laufen auch im Thread problemos. Danke für den Hinweis! Natürlich gibt's aber auch etwas was (momentan) nicht im Thread funktioniert: Der Druck mit der Crystal-Report-Komponente. Falls jemand Thread-Erfahrung damit hat, bitte melden! Dann könnte ich mir weitere Versuche sparen :wink: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:25 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