Delphi-PRAXiS
Seite 1 von 3  1 23      

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 Problem mit Thread und ProgressBar (https://www.delphipraxis.net/142081-problem-mit-thread-und-progressbar.html)

Helmi 21. Okt 2009 17:58


Problem mit Thread und ProgressBar
 
Hallo,

ich habe ein Programm mit einem Thread.

In diesem Thread werden im Execute 5 Proceduren aufgerufen, abhängig ob jeweils eine Variable aktiv ist oder nicht.
Nach jeder Procedure wird eine Procedure mit Synchronize aufgerufen, die dann im Hauptthread eine ProgressBar-Position
ändert.

Beim Debuggen fällt mir auf, dass nach jeder Procedure der Code für die ProgressBar-Positions-Änderung aufgerufen wird.
Die ProgressBar ändert aber erst die Position wenn der Thread nicht mehr läuft.

Hätte jemand eine Idee, was das Problem sein könnte?

Luckie 21. Okt 2009 18:03

Re: Problem mit Thread und ProgressBar
 
Zitat:

Zitat von Helmi
Hätte jemand eine Idee, was das Problem sein könnte?

Dass du uns keinen Code zeigst?

Helmi 21. Okt 2009 18:10

Re: Problem mit Thread und ProgressBar
 
Liste der Anhänge anzeigen (Anzahl: 1)
hier mal das projekt

himitsu 21. Okt 2009 18:19

Re: Problem mit Thread und ProgressBar
 
Windows Vista/Seven?

Da ändert sich die ProgressBar nicht sofort, sondern paßt sich stetig an (liegt an Windows)

Luckie 21. Okt 2009 18:25

Re: Problem mit Thread und ProgressBar
 
Zitat:

Zitat von Helmi
hier mal das projekt

Ist es denn so schwer einfach den relevanten Code hier zu posten?

Helmi 21. Okt 2009 18:26

Re: Problem mit Thread und ProgressBar
 
Zitat:

Zitat von Luckie
Zitat:

Zitat von Helmi
hier mal das projekt

Ist es denn so schwer einfach den relevanten Code hier zu posten?

Mit nix zu frieden der Herr!!

Helmi 21. Okt 2009 18:29

Re: Problem mit Thread und ProgressBar
 
Zitat:

Zitat von himitsu
Windows Vista/Seven?

Da ändert sich die ProgressBar nicht sofort, sondern paßt sich stetig an (liegt an Windows)

Ja ist Vista

Interessanterweise hab ich auch andere Projekte mit ner Progressbar die sich ständig ändert, aber in
diesen Projekte funktionierts problemlos.

Ich seh nur keinen Unterschied wieso es bei dem einem funktioniert, beim Anderen aber nicht

himitsu 21. Okt 2009 18:34

Re: Problem mit Thread und ProgressBar
 
zurücksetzen passiert quasi sofort

Lösung:
Delphi-Quellcode:
PB.Position := i + 1;
PB.Position := i;
bzw.
Delphi-Quellcode:
PB.Position := Max(i + 1, PB.Max - 1);
PB.Position := i;

Helmi 21. Okt 2009 18:45

Re: Problem mit Thread und ProgressBar
 
Zitat:

Zitat von himitsu
zurücksetzen passiert quasi sofort

Lösung:
Delphi-Quellcode:
PB.Position := i + 1;
PB.Position := i;
bzw.
Delphi-Quellcode:
PB.Position := Max(i + 1, PB.Max - 1);
PB.Position := i;

Was meist du mit zurücksetzen?
Hab deine Codes mal getestet, leider ändert sich nichts am Verhalten

Tryer 21. Okt 2009 19:12

Re: Problem mit Thread und ProgressBar
 
Da ich nichts von {APPTYPE CONSOLE} und WriteLn - Ausgaben sehe: Hast Du den abwechselnden Aufruf beim Debuggen vielleicht mit Haltepunkten hervorgerufen? Vielleicht kommt das Formular dank zahlreicher Sync-Anfragen garnicht zum neuzeichnen. Ob die Position sich überhaupt ändert könnte vermutlich ein nachgeschaltetes ProcessMessages zeigen.

Grüsse, Dirk


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:29 Uhr.
Seite 1 von 3  1 23      

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