[gelöst] Benutzerinformation undefinierter Prozesse

Rund um die LCL und andere Komponenten
Antworten
charlytango
Beiträge: 843
Registriert: Sa 12. Sep 2015, 12:10
OS, Lazarus, FPC: Laz stable (2.2.6, 3.x)
CPU-Target: Win 32/64, Linux64
Wohnort: Wien

[gelöst] Benutzerinformation undefinierter Prozesse

Beitrag von charlytango »

HI

Ich suche nach einer eleganten Möglichkeit den Benutzer bei zeitlich nicht definierbaren Aktionen bei Laune zu halten.

Beispiel: Ich durchsuche ein Verzeichnis und weiß natürlich nicht wielange die Aktion dauert. Jetzt soll sich etwas am Schirm tun damit der Benutzer beruhigt ist. Idealerweise etwas das den Rechner nicht blockiert und andere Programme weiter funktionieren.

Ein "wait" - Cursor wäre zwar möglich würde aber für den ganzen Rechner gelten.
Ich dachte da an eine Art Lauflicht von rechts nach links und wieder retour (wie seinerzeit im Knight Rider ggg).

Jetzt mal keine Ahnung wie man das angeht damit das nach etwas aussieht.
Einen ProgressBar mit Timersteuerung der immer wieder von Beginn anfängt wäre mir etwas zuwenig.

Ihr habt sicher Ideen dazu bzw kennt Komponenten ?

THX
Zuletzt geändert von charlytango am Sa 13. Nov 2021, 11:03, insgesamt 1-mal geändert.

Benutzeravatar
Winni
Beiträge: 1577
Registriert: Mo 2. Mär 2009, 16:45
OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
CPU-Target: 64Bit
Wohnort: Fast Dänemark

Re: Benutzerinformation undefinierter Prozesse

Beitrag von Winni »

Hi!

Ich weiß nicht, ob das genug "Show" für Dich ist:

Ein TProgressBar und dann den Style auf

pbstMarquee


setzen


Winni

Benutzeravatar
Winni
Beiträge: 1577
Registriert: Mo 2. Mär 2009, 16:45
OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
CPU-Target: 64Bit
Wohnort: Fast Dänemark

Re: Benutzerinformation undefinierter Prozesse

Beitrag von Winni »

Hi!

Wenn Du flexibler in Tempo und Farbe sein möchtest, dann geht es auch so;

Ein Image in Form eines vertikalen ProgressBar auf die Form.
Plus einen Timer.

Und dann

Code: Alles auswählen

 TForm1 = class(TForm)   
   ...
private
  Peekposition : integer;
  step : Integer;
  ...

procedure TForm1.FormCreate(Sender: TObject);
begin
  Timer1.Interval:=100;
  step := 10;
  Peekposition := 0;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  inc(Peekposition,step);
  if (Peekposition > Image1.width) or (PeekPosition <0) then step := -step;
  Image1.Canvas.GradientFill(Rect(0,0,Peekposition,Image1.Height),clYellow,ClRed,gdHorizontal);
  Image1.Canvas.GradientFill(Rect(Peekposition,0,Image1.width,Image1.Height),clRed,clYellow, gdHorizontal);
end;


Winni

charlytango
Beiträge: 843
Registriert: Sa 12. Sep 2015, 12:10
OS, Lazarus, FPC: Laz stable (2.2.6, 3.x)
CPU-Target: Win 32/64, Linux64
Wohnort: Wien

Re: Benutzerinformation undefinierter Prozesse

Beitrag von charlytango »

Winni hat geschrieben:
Fr 12. Nov 2021, 16:59
Ich weiß nicht, ob das genug "Show" für Dich ist:

Ein TProgressBar und dann den Style auf

pbstMarquee
Das ist einfach, elegant und bietet ausreichend show.

Danke !

PascalDragon
Beiträge: 830
Registriert: Mi 3. Jun 2020, 07:18
OS, Lazarus, FPC: L 2.0.8, FPC Trunk, OS Win/Linux
CPU-Target: Aarch64 bis Z80 ;)
Wohnort: München

Re: [gelöst] Benutzerinformation undefinierter Prozesse

Beitrag von PascalDragon »

charlytango hat geschrieben:
Fr 12. Nov 2021, 16:36
Ein "wait" - Cursor wäre zwar möglich würde aber für den ganzen Rechner gelten.
Nein, der Cursor ist feingranular kontrollierbar: SomeControl.Cursor gilt nur für das jeweilige Control, SomeForm.Cursor gilt nur für das jeweilige Fenster und Screen.Cursor gilt nur für deine Anwendung. Für einen globalen Cursor muss man sich im Gegenzug schon etwas mehr anstrengen. ;)
FPC Compiler Entwickler

charlytango
Beiträge: 843
Registriert: Sa 12. Sep 2015, 12:10
OS, Lazarus, FPC: Laz stable (2.2.6, 3.x)
CPU-Target: Win 32/64, Linux64
Wohnort: Wien

Re: [gelöst] Benutzerinformation undefinierter Prozesse

Beitrag von charlytango »

wieder was dazu gelernt!

Werde ich gleich ausprobieren
Danke

Antworten