AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Neu Zeichnen im Thread?

Ein Thema von bort · begonnen am 26. Aug 2003 · letzter Beitrag vom 27. Aug 2003
Antwort Antwort
bort

Registriert seit: 26. Aug 2003
Ort: Hamburg
6 Beiträge
 
Delphi 7 Architect
 
#1

Neu Zeichnen im Thread?

  Alt 26. Aug 2003, 13:39
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
  Mit Zitat antworten Zitat
neolithos

Registriert seit: 31. Jul 2003
Ort: Dresden
1.386 Beiträge
 
Delphi 7 Architect
 
#2

Re: Neu Zeichnen im Thread?

  Alt 26. Aug 2003, 13:53
Ruf doch die Windows-Funktion InvalidateRect

Die schickt dann schon die Nachrichten an dein Fenster.
- ciao neo -
Es gibt niemals dumme Fragen, sondern nur dumme Antworten!
  Mit Zitat antworten Zitat
bort

Registriert seit: 26. Aug 2003
Ort: Hamburg
6 Beiträge
 
Delphi 7 Architect
 
#3

Re: Neu Zeichnen im Thread?

  Alt 26. Aug 2003, 14:33
Zitat von neolithos:
Ruf doch die Windows-Funktion InvalidateRect

Die schickt dann schon die Nachrichten an dein Fenster.
Hm, ich denke genau das ist ja das Problem: Die Anwendung verabeitet keine Messages bis die Funktion fertig ist. Darum wird auch zwischendurch nichts neu gezeichnet, egal wie viele update Aufforderungen in der Warteschlange sind.

Korrigiert mich, falls ich etwas falsch verstanden habe.

Trotzdem, danke für die Anregung!
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Neu Zeichnen im Thread?

  Alt 26. Aug 2003, 14:42
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.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
neolithos

Registriert seit: 31. Jul 2003
Ort: Dresden
1.386 Beiträge
 
Delphi 7 Architect
 
#5

Re: Neu Zeichnen im Thread?

  Alt 26. Aug 2003, 14:48
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.
- ciao neo -
Es gibt niemals dumme Fragen, sondern nur dumme Antworten!
  Mit Zitat antworten Zitat
bort

Registriert seit: 26. Aug 2003
Ort: Hamburg
6 Beiträge
 
Delphi 7 Architect
 
#6

Re: Neu Zeichnen im Thread?

  Alt 26. Aug 2003, 16:02
@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 von Luckie:
Dann lager die Funktion dochin einen Thread aus. Oder was spricht dagegen?
Oh, da hatte ich wohl ein anderes Verständnis von dem was Thread-Sicher ist ... ich werde es jetzt einfach mal testen (die besagte Funktion ist mit Datenbank-Abfragen und so'n Zeugs. Daher erwarte ich eigentlich komische Seiteneffekte wenn das im thread läuft .. aber mal sehen....)

Werde über Erfolg/Misserfolg berichten ....
  Mit Zitat antworten Zitat
bort

Registriert seit: 26. Aug 2003
Ort: Hamburg
6 Beiträge
 
Delphi 7 Architect
 
#7

Re: Neu Zeichnen im Thread?

  Alt 27. Aug 2003, 10:23
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
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:31 Uhr.
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