AGB  ·  Datenschutz  ·  Impressum  







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

Statusbar - Fortschritt ausgeben

Ein Thema von gallstone · begonnen am 24. Nov 2011 · letzter Beitrag vom 28. Nov 2011
Antwort Antwort
gallstone

Registriert seit: 27. Jul 2005
34 Beiträge
 
#1

Statusbar - Fortschritt ausgeben

  Alt 24. Nov 2011, 19:22
Hi,

wie ja einige wissen bau ich gerade an einem Programm welches Textdateien aus den Zeilen einer Tabelle erzeugt.
Das Programm an sich funktioniert.
Nun möchte ich noch einen kleinen optischen Effekt hinzufügen (ich weiß ist Spielerei ^^):

In der Statusbar soll der Fortschritt angezeigt werden:

OK lassen wir die Berechnung außen vor.
Mein Programm läuft in einer While-Schleife (solange Memofeld mehr Zeilen als 0 enthält läuft die Schleife, vorm Neustart der Schleife lösche ich immer die erste Zeile).
Vor dem Neustart der Schleife soll der Status in der Statusbar angezeigt werden.
Habe hierzu einfach mal einen Platzhalter "Test" genommen + Sleep(200) (Das Programm läuft sonsts innerhalb von 0,5 Sekunden durch ^^).

nur leider wird der "Test" erst ganz am Ende des Programms/Schleife in der Statusbar angezeigt, also dann wenn das Programm fertig ist...:

Code:
   
sleep(200);
StatusBar1.Panels[0].Text:='Test';
habt ihr eine Idee woran das liegen kann?
Funktioniert das überhaupt wie ich mir das vorstelle?

Sollte ich das über eine Funktion machen?

Grüße!
  Mit Zitat antworten Zitat
TKanne

Registriert seit: 6. Aug 2007
Ort: Berlin
24 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Statusbar - Fortschritt ausgeben

  Alt 24. Nov 2011, 19:27
Hi,

so müsste es gehen:

Delphi-Quellcode:
sleep(200);
StatusBar1.Panels[0].Text:='Test';
Application.ProcessMessages;
Grüße
TKanne
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Statusbar - Fortschritt ausgeben

  Alt 24. Nov 2011, 19:34
Du könntest einmal StatusBar1.Panels[0].Refresh; versuchen.

Alternativ könnte man auch eine ProgressBar für die Fortschrittsanzeige nutzen.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
gallstone

Registriert seit: 27. Jul 2005
34 Beiträge
 
#4

AW: Statusbar - Fortschritt ausgeben

  Alt 24. Nov 2011, 21:29
Hi,

cool danke euch.
probier das glatt morgen früh gleich aus
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.582 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Statusbar - Fortschritt ausgeben

  Alt 25. Nov 2011, 00:17
Wobei eine solche Fortschrittsanzeige den Prozess deutlich verlangsamen kann. Deshalb macht es wenig Sinn eine Operation, die sonst in einem Bruchteil einer Sekunde durchläuft alleine durch die Statusanzeige ggf. um Sekunden zu verlängern.

Um das zu verhindern kannst du z.B. nur alle 100 oder 1000 Einträge oder so den Status aktualisieren, je nachdem wie lange die einzelnen Operationen dauern.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
gallstone

Registriert seit: 27. Jul 2005
34 Beiträge
 
#6

AW: Statusbar - Fortschritt ausgeben

  Alt 28. Nov 2011, 14:34
Hi,

danke für den Einwand. Denke aber nicht, dass dies für mich eine Rolle spielt.

Im höchstfall geht es hier um 100 Zeilen... So dass sich das in Grenzen hält.

Grüße!

Ansonsten hat:

Code:
Application.ProcessMessages;
geklappt

Code:
StatusBar1.Panels[0].Refresh;
klappt leider nicht, .Refresh gibts bei mir nicht (D7).

Grüße!
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#7

AW: Statusbar - Fortschritt ausgeben

  Alt 28. Nov 2011, 17:42
.Refresh gibts bei mir nicht (D7).
Versuch doch alternativ mal Update .
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  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 11:40 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