Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Betriebssysteme (https://www.delphipraxis.net/27-betriebssysteme/)
-   -   Fenster Aktualisierung blockiert (https://www.delphipraxis.net/34283-fenster-aktualisierung-blockiert.html)

yogie 20. Nov 2004 14:53


Fenster Aktualisierung blockiert
 
Hallo zusammen,

folgende Situation (als Test abgespeckt auf die wesentlichen Bestandteile):
Ein Programm bestehend aus 2 Units. In der ersten Unit nur ein Memo-
Feld und eine public procedure SetData die von der zweiten Unit aufgerufen
wird . In der zweiten Unit ein Timer der alle Sekunde einen Wert inkrementiert
und via SetData an die erste Unit weitergibt. Dort wird der Wert im Memo-Feld
angezeigt.

Ergebnis unter WIN XP Home : Alles läuft wie man erwartet, im Memo-Feld
laufen die inkrementierenden Zahlen hoch, auch wenn man die Form mit dem
Memo-Feld mit der Maus bewegt !

Ergebnis unter WIN 98 : s.o. solange man die Form nicht bewegt. Sowie man die
Form mit der Maus bewegt wird der Inhalt des Memo-Feldes nicht weiter verändert,
bis man die Form wieder freigibt (Maustaste loslässt)

Ich meine, mal gelesen zu haben, dass die Bewegung eines Fenster eine eigene
Message-Loop startet. Ist das in WIN XP irgendwie anders ?. Ich würde das
Verhalten wie unter XP gerne generell erreichen. Die (reale) Anwendung soll
Daten über eine serielle Schnittstelle erhalten und diese kontinuierlich darstellen,
auch wenn die Form bewegt wird.

Sprint 21. Nov 2004 04:33

Re: Fenster Aktualisierung blockiert
 
Entferne die TTimer Komponente und ersetze diese durch einen eigenen TThread.

yogie 21. Nov 2004 16:54

Re: Fenster Aktualisierung blockiert
 
... erstmal Danke für den Tip, aber mich würde vorwiegend interessieren
woher der Unterschied zwischen XP und WIN98 kommt. Irgend was muß sich
da ja wohl geändert haben. Die reale Anwendung ist "ein klein wenig" komplexer und bekommt ihre daten über eine serielle Schnittstelle.

yogie 22. Nov 2004 06:49

Re: Fenster Aktualisierung blockiert
 
in der Zwischezeit habe ich mal einen Thread programmiert. Das Verhalten hat sich dabei
nicht verändert.

roderich 22. Nov 2004 09:22

Re: Fenster Aktualisierung blockiert
 
ich verwende den AsyncTimer aus der OpenGL-Library, damit erreiche ich auch unter Win98 dieses Verhalten.

Roderich


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:45 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