AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

"Aktivitätsbar"

Ein Thema von Mattze · begonnen am 7. Aug 2020 · letzter Beitrag vom 11. Aug 2020
Antwort Antwort
Seite 1 von 2  1 2   
Mattze

Registriert seit: 6. Jan 2005
664 Beiträge
 
#1

"Aktivitätsbar"

  Alt 7. Aug 2020, 16:05
Hi,

nun muss ich doch fragen. Ich finde einfach nix. Aber, wahrscheinlich, kenne ich nur nicht den richtigen Namen...

Oft sieht man in Programmen eine Art Progressbar, in der der Balken (mit Schwanz) hin und her läuft, um damit Aktivität zu zeigen.
Ich suche genau so eine Komponente.
(Selber habe ich es auch versucht, aber irgendwas fehlt mir da!)

Kennt jemand sowas? Möglichst, natürlich, kostenlos und mit Source für Delphi 7 pro?

Gruß
Mattze
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
39.647 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: "Aktivitätsbar"

  Alt 7. Aug 2020, 16:15
TProgressBar.Style = pbstMarquee
Falls der Marquee-Style noch nicht in der VCL drin ist, dann ließe es sich auch direkt per WinAPI aktivieren.
https://docs.microsoft.com/en-us/win...ss-bar-control -> PBS_MARQUEE

oder (aktueller)

Delphi-Referenz durchsuchenTActivityIndicator (VCL) bzw. Delphi-Referenz durchsuchenTAniIndicator (FMX)


PS:
https://www.delphipraxis.net/204857-...ogressbar.html
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014

Geändert von himitsu ( 7. Aug 2020 um 16:21 Uhr)
  Mit Zitat antworten Zitat
Der schöne Günther

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

AW: "Aktivitätsbar"

  Alt 7. Aug 2020, 16:19
Mit Schwanz? 🤨
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
39.647 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: "Aktivitätsbar"

  Alt 7. Aug 2020, 16:30
Ein hässlicher VCL-Style drüber?
Oder im Windows die System-Farben umstellen.

Kanns aber auch mit TGauge oder Dergleichen selbst machen.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.672 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: "Aktivitätsbar"

  Alt 7. Aug 2020, 16:42
Er meint vermutlich Schweif?
Andreas
#PerfMatters
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
39.647 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: "Aktivitätsbar"

  Alt 7. Aug 2020, 18:40
Ohhh, ich hatte Schwarz gelesen.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014
  Mit Zitat antworten Zitat
Mattze

Registriert seit: 6. Jan 2005
664 Beiträge
 
#7

AW: "Aktivitätsbar"

  Alt 8. Aug 2020, 06:49
Hi,

"Schwanz" war wohl nicht richtig gewählt.
"Schweif" ginge auch...
Aber, ich weiß wohl wieder mal nicht genau, wie das heißt.
Die Farbe des Laufbalkens soll einfach schwächer werden.

Bei meinem Delphi 7 finde ich für den Progressbar noch keine Style-Eigenschaft.
Ich glaube, das würde auch nicht reichen, weil der Laufbalken ja hin- und her laufen soll.

Und ich war mir sooo sicher, dass es da auch für Delphi 7 schon etwas gibt.
Bei dem, was ich geschrieben habe, läuft der Thread zwar alles ordentlich (mit "Schweif"), aber nur, wenn nicht noch etwas anderes gemacht wird.
Wenn ich, z. Bsp., mit showmessage das Prgrramm "anhalte", geht es genau, wie es soll. Fülle ich dabei meinen Treeview weiter, wird der Thread nicht ausgeführt. (Die Threadpriority auf tpHigher zu setzen, hilft auch nicht.)
Ist es vielleicht falsch, dass im Thread alles per VCL zu zeichnen?

Nun, ich spiele weiter...

Jedenfalls danke!

Gruß
Mattze
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
39.647 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: "Aktivitätsbar"

  Alt 8. Aug 2020, 16:52
z.B. ins OnCreate oder OnShow der Form

Delphi-Quellcode:
//SetWindowLong(ProgressBar1.Handle, GWL_STYLE, GetWindowLong(ProgressBar1.Handle, GWL_STYLE) or {PBS_MARQUEE}$08);
SetWindowLong(ProgressBar1.Handle, GWL_STYLE, {PBS_MARQUEE}$08);
SendMessage(ProgressBar1.Handle, {PBM_SETMARQUEE}WM_USER+10, 1, 100); // 0=steht, 1=läuft und Tempo=100
Hab alle Konstanten ersetzt. Kann sein, dass es Einige bei dir schon gibt.
Mit diesem Style-Property wird am Ende auch nur der Control-Style gesetzt und die Auto-Animation gestartet.
Wenn man die Animation nicht startet, dann wird durch ändern von .Position die "Animation" manuell um einen Schritt weitergeschaltet. (z.B. ProgressBar1.StepIt; )

Insgesamt gibt es noch paar weitere Dinge, welche Windows inzwischen bietet (vor allem seit Vista und 7) und die erst in späteren Delphis drin sind.
z.B. auch Farben Rot/Gelb/Grün, um einen Status wie "Pausiert" oder "Fehler" anzuzeigen.
https://docs.microsoft.com/en-us/win...ss-bar-control
https://docs.microsoft.com/en-us/win...trol-reference

PS: https://www.embarcadero.com/de/products/delphi/starter
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014

Geändert von himitsu ( 8. Aug 2020 um 17:05 Uhr)
  Mit Zitat antworten Zitat
Mattze

Registriert seit: 6. Jan 2005
664 Beiträge
 
#9

AW: "Aktivitätsbar"

  Alt 9. Aug 2020, 14:51
Hallo

und Stop!
Vielen Dank allen Helfern, besonders himitsu.
Ich glaubbe aber, wir sind da in eine falsche Richtung gekommen und haben das eigentliche Problem aus den Augen verloren!
Marqee und Schweif und hin- und her laufen sind NICHT das Problem. Das funktioniert sogar sehr gut.

Das Problem ist, dass der Laufbalken stehen bleibt, sobald das Programm etwas (anderes) macht. Pausiert das Programm (z. Bsp. mit Showmessage) laufen die Balken alle schön weiter.
Das betrifft meine eigene Komponente (mit Thread oder Timer. Habe beides probiert!), aber auch die "normale" Delphikomponente Progressbar (Wenn ich ihn bei Programmstart loslaufen lasse, abver auch, wenn ich das Timergesteuert mache.)
Ich habe keine Idee, warum der stehen bleibt.
Bsp.: Ich lasse ihn loslaufen (Nach dem progressbar.enable ein Showmessage). Drücke das Showmessage weg und mache etwas. Der Balken steht. mache zwischendurch ein Showmessage. Der Balken läuft wieder bis ich das auch wegdrücke... Waskann man da machen?

(Wie gesagt: Delphi 7 pro)

Gruß
Mattze
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.046 Beiträge
 
Delphi 10.3 Rio
 
#10

AW: "Aktivitätsbar"

  Alt 9. Aug 2020, 15:34
Ok, nach deiner letzten Beschreibung ist mir so ungefähr klar was du treibst
Für viele Dinge nutzen VCL Programme sog. Windows Botschaften. Diese werden aber nur dann
innerhalb deines Programms verarbeitet, wenn dieses dazu kommt die Botschaftenschleife
abzuarbeiten.

Das macht die VCL automatisch für dich. Nur: falls du eine länger laufende Aktion ausführst,
dann kommt diese Botschaftenschleife solange nicht zum Zug und auch dein GUI wird nie
aktualisiert.

=> du müsstest versuchen deine länger laufende Tätigkeit aus dem VCL Hauptthread heraus
zun verlagern. Der Hauptthread ist der, der automatisch läuft sobald deine erste Form
angezeigt wird.

=> deine länger laufende Tätigkeit gehört z.B. in einen eigenen Thread.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 20:50 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf