AGB  ·  Datenschutz  ·  Impressum  







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

ProgressBar Animation beenden wenn nicht 100%

Ein Thema von TUX_der_Pinguin · begonnen am 9. Aug 2017 · letzter Beitrag vom 9. Aug 2017
Antwort Antwort
Seite 1 von 2  1 2      
TUX_der_Pinguin

Registriert seit: 1. Jun 2005
Ort: Anholt (NRW)
609 Beiträge
 
Delphi 11 Alexandria
 
#1

ProgressBar Animation beenden wenn nicht 100%

  Alt 9. Aug 2017, 10:40
Hallo liebe DPler,

ich habe in einer Anwendung eine Fortschrittsanzeige (TProgressBar) für eine Suche, werden jetzt zu viele Datensätze durchsucht wird die Suche unterbrochen und ein Meldung angezeigt. Die Fortschrittsanzeige bleibt dann z.B. bei 43% stehen. Unter Windows 7 als auch Windows 10 läuft aber noch eine Animation durch den Fortschrittsbalken, gibt es eine Möglichkeit diese Animation zu stoppen? Wie es das auch tut wenn man den Fortschritt auf 100% setzt. Dieses geflacker könnte den Anwender auf die Idee bringen die Suche würde noch laufen, was sie aber nicht mehr tut.

Ich hoffe jemand von euch hat einen Tipp für mich, bin da recht ratlos zur Zeit.
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.176 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: ProgressBar Animation beenden wenn nicht 100%

  Alt 9. Aug 2017, 10:49
Falls du die VCL-TProgressBar meinst, die hat eine State -Eigenschaft die genau dafür gedacht ist
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

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

AW: ProgressBar Animation beenden wenn nicht 100%

  Alt 9. Aug 2017, 10:50
Der laut GUI Richtlinien vorgesehene Weg ist dann den State auf pbsError oder pbsPaused zu setzen, je nachdem was für eine Meldung das ist.
Zitat:
Progress bar colors
- Use red or yellow progress bars only to indicate the progress status, not the final results of a task. A red or yellow progress bar indicates that users need to take some action to complete the task. If the condition isn't recoverable, leave the progress bar green and display an error message.
- Turn the progress bar red when there is a user recoverable condition that prevents making further progress. Display a message to explain the problem and recommend a solution.
- Turn the progress bar yellow to indicate either that the user has paused the task or that there is a condition that is impeding progress but progress is still taking place (as, for example, with poor network connectivity). If the user has paused, change the Pause button label to Resume. If progress is impeded, display a message to explain the problem and recommend a solution.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
mensch72

Registriert seit: 6. Feb 2008
838 Beiträge
 
#4

AW: ProgressBar Animation beenden wenn nicht 100%

  Alt 9. Aug 2017, 10:56
alternativer Vorschlag(wir verwenden aber die sicher fast identisch aussehenden TMS-GUI Componenten):
- wenn es einen Abbruch gibt, dann bleibt der Balken(incl. Animation) da stehen wo er ist, wird aber per "ErrorState" von grün auf "ROT"(was dann auch weiter "rot flackert") umgesetzt
- da haben bisher alle Anwender kappiert das etwas nicht so fertig geworden ist wie es beabsichtigt war und sind drauf geeicht dann im Log nachzusehen was nicht geklappt hat
- Download/Upload-"Timeout/Abbruch" oder Speicherplatz "begerenzt/voll" sind da bei uns die am häufigsten geloggten Gründe, warum ein Vorgang nicht zu 100% durchläuft
- solange das Verhalten innerhalb des Programms kostant ist, kann man Anwender so durchaus auch mit indirekten Fehlerhinweisen wie eines plötzlich roten Progressbalkens in der Statuszeile glücklich machen... wenn Vorgänge wirklich länger daueren und Anwender können mit anderem weiterarbeiten nerven plötzlich auf popende Modale Fehlermeldungsdialoge vermutlich mehr
  Mit Zitat antworten Zitat
TUX_der_Pinguin

Registriert seit: 1. Jun 2005
Ort: Anholt (NRW)
609 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: ProgressBar Animation beenden wenn nicht 100%

  Alt 9. Aug 2017, 11:08
Falls du die VCL-TProgressBar meinst, die hat eine State -Eigenschaft die genau dafür gedacht ist
Das habe ich wohl übersehen.

Hab es gleich mal ausprobiert und es funktioniert, die Animation ist beendet. Jedoch ändert sich dabei auch die Farbe des Balkens pbsError = rot und pbsPaused = gelb, damit könnte ich aber vielleicht Leben.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

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

AW: ProgressBar Animation beenden wenn nicht 100%

  Alt 9. Aug 2017, 11:16
Hab es gleich mal ausprobiert und es funktioniert, die Animation ist beendet. Jedoch ändert sich dabei auch die Farbe des Balkens pbsError = rot und pbsPaused = gelb, damit könnte ich aber vielleicht Leben.
Das würde ich aber auch erwarten, da es so der Standard ist. Bei uns wird diese Fortschrittsanzeige auch in der Taskleiste angezeigt und ein solcher Status auch dort dann angezeigt.
Auch das entspricht dann dem Standardverhalten.

Gut sehen kannst du das am Windows Explorer, wenn du etwas kopierst und eine Datei schon vorhanden ist usw.
Der hält sich genau an diese Vorgaben.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
TUX_der_Pinguin

Registriert seit: 1. Jun 2005
Ort: Anholt (NRW)
609 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: ProgressBar Animation beenden wenn nicht 100%

  Alt 9. Aug 2017, 11:25
Hab es gleich mal ausprobiert und es funktioniert, die Animation ist beendet. Jedoch ändert sich dabei auch die Farbe des Balkens pbsError = rot und pbsPaused = gelb, damit könnte ich aber vielleicht Leben.
Das würde ich aber auch erwarten, da es so der Standard ist. Bei uns wird diese Fortschrittsanzeige auch in der Taskleiste angezeigt und ein solcher Status auch dort dann angezeigt.
Auch das entspricht dann dem Standardverhalten.

Gut sehen kannst du das am Windows Explorer, wenn du etwas kopierst und eine Datei schon vorhanden ist usw.
Der hält sich genau an diese Vorgaben.
Macht ja auch alles soweit Sinn. Ich muss zugeben ich habe das bisher nie gebraucht. Aber danke dir und den anderen für die ausführlichen Informationen.
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: ProgressBar Animation beenden wenn nicht 100%

  Alt 9. Aug 2017, 13:14
Hallo,
du könntest auch das Theme ändern.

Delphi-Quellcode:
uses
  Themes;

SetWindowTheme(ProgressBar.Handle, ' ', ' ');
Heiko
  Mit Zitat antworten Zitat
TUX_der_Pinguin

Registriert seit: 1. Jun 2005
Ort: Anholt (NRW)
609 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: ProgressBar Animation beenden wenn nicht 100%

  Alt 9. Aug 2017, 13:28
Hallo,
du könntest auch das Theme ändern.

Delphi-Quellcode:
uses
  Themes;

SetWindowTheme(ProgressBar.Handle, ' ', ' ');
Darüber hatte ich auch nachgedacht und es mal kurz ausprobiert, jedoch wird da durch halt auch das Design geändert und das passt dann nicht zum restlichen look and feel der Anwendung.
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#10

AW: ProgressBar Animation beenden wenn nicht 100%

  Alt 9. Aug 2017, 15:08
Hallo,
ich meinte nicht prinzipiell, sondern nur in Deinem Abbruch-Code.

Und hier steht was von Style = UserPaint
http://www.windows-tech.info/18/866def1f6059f141.php

oder OwnerDraw
https://emoacht.wordpress.com/2011/1...-visual-style/
Heiko

Geändert von hoika ( 9. Aug 2017 um 15:13 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 21:51 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