Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   FreePascal Progressbar "manuell" steuern (https://www.delphipraxis.net/152911-progressbar-manuell-steuern.html)

0ip0ip 12. Jul 2010 14:23

Progressbar "manuell" steuern
 
Hi

sorry wenn diese Frage hier zum hundertsten mal kommt aber ich habe bisher keine Antwort gefunden...

ich versuche ein Spaßprogramm zu programmieren beidem ich eine Progressbar habe welche durch das klicken eines Buttons um einen vorgegebenen Prozentsatz vorranschreitet..
zum Beispiel das beim klick auf Button1 15% auf die Progressbar adiert wird..

wie genau muss ich die Button programmieren damit die Progressbar bei jedem klick wächst??
oder ist das überhaupt möglich??

sorry für diese Anfängerfrage aber es ist eines meiner ersten Programme und ich bin neu hier im Forum.

mfg 0ip0ip


P.S. ich benutze Lazarus

s.h.a.r.k 12. Jul 2010 14:29

AW: Progressbar "manuell" steuern
 
Es gibt sicherlich die Eigenschaft Position. Teilweise, ab neueren Versionen, gibt Step() als Methode.

mleyen 12. Jul 2010 14:29

AW: Progressbar "manuell" steuern
 
Hallo und herzlich willkommen im Forum, :dp:

um die Progressbar zu verstellen brauchst du die Eigenschaft Delphi-Referenz durchsuchenPosition.

Hier auf dein Beispiel zugeschnitten:
Delphi-Quellcode:
procedure TForm1.btn3Click(Sender: TObject);
begin
  pgbar1.Position := pgbar1.Position + pgbar1.Max * 15 div 100;
end;

0ip0ip 12. Jul 2010 14:35

AW: Progressbar "manuell" steuern
 
Zitat:

Zitat von mleyen (Beitrag 1034966)
Hallo und herzlich willkommen im Forum, :dp:

um die Progressbar zu verstellen brauchst du die Eigenschaft Delphi-Referenz durchsuchenPosition.

Hier auf dein Beispiel zugeschnitten:
Delphi-Quellcode:
procedure TForm1.btn3Click(Sender: TObject);
begin
  pgbar1.Position := pgbar1.Position + pgbar1.Max * 15 div 100;
end;

danke (:
funktioniert super...

und ich meine sogar die Funktionsweise dahnter verstanden zu haben ^^


und danke für die schnelle hilfe..

0ip0ip 12. Jul 2010 18:44

AW: Progressbar "manuell" steuern
 
Hi

ich nochmal...

ist es auch möglich wenn die Progressbar "voll" ist automatisch ein Bild anzeigen zu lassen??

also ImageX.visible:= true;

aber wie sage ich dem Programm das es dies genau dann macht wenn die Progressbar den Maximalwert überschreitet??

mfg udn danke im vorraus

Daniela.S 12. Jul 2010 18:55

AW: Progressbar "manuell" steuern
 
Über schreiten gibt's nicht.
Aber du kannst vergleichen ob das Maximum erreicht ist.

Delphi-Quellcode:
  ImageX.visible := pgbar1.Position = pgbar1.Max;

0ip0ip 12. Jul 2010 18:58

AW: Progressbar "manuell" steuern
 
ja meinte ich auch das maximum ereichen...
danke werde es probieren (:

0ip0ip 12. Jul 2010 19:21

AW: Progressbar "manuell" steuern
 
nee hat leider nicht geklapt ):

also das bild soll ersteinmal versteckt sein...
und dann wenn die progressbar ihr maximum erreicht hat soll es sichtbar werden...

mfg

xZise 12. Jul 2010 19:29

AW: Progressbar "manuell" steuern
 
Du musst auch zu anfang im Object Inspector das Image ausblenden. Dann sollte es gehen.

MfG
Fabian

0ip0ip 12. Jul 2010 20:25

AW: Progressbar "manuell" steuern
 
danke funktioniert jetzt ^^

aber irgendwie nicht wenn ein bild verschwinden soll..
also ist im objektinspektor als Visible True drinne (soll von anfang an gezeigt werden)
aber dann nichtmehr sichtbar werden wenn die Progressbar ihr Mximum ereicht hat..

ist das dann nicht einfach " ImageX.invisible := pgbar1.Position = pgbar1.Max; " ??

Namenloser 12. Jul 2010 20:53

AW: Progressbar "manuell" steuern
 
Wenn du das "in" noch rausstreichst, sollte es klappen, ja.

0ip0ip 12. Jul 2010 20:59

AW: Progressbar "manuell" steuern
 
leider nein :S

jetzt wir es nicht sichtbar während die progressbar sich "füllt" aber sobald sie voll ist wird es wieder sichtbar...
also genau andersrum wäre gut... :/

idefix2 12. Jul 2010 22:23

AW: Progressbar "manuell" steuern
 
Delphi-Quellcode:
ImageX.visible := pgbar1.Position <> pgbar1.Max;

0ip0ip 12. Jul 2010 22:35

AW: Progressbar "manuell" steuern
 
cool danke (:

es hat geklapt :'D

lbccaleb 13. Jul 2010 09:12

AW: Progressbar "manuell" steuern
 
Versuchs mal damit:

ImageX.visible := not pgbar1.Position = pgbar1.Max;

xZise 13. Jul 2010 09:33

AW: Progressbar "manuell" steuern
 
Moin,
ein Bild hat keine Eigenschaft [delpi]invisible[/delphi], weil das ja das gegenteil von
Delphi-Quellcode:
visible
ist. Also um etwas auszublenden sagst du entweder es ist unsichtbar (also sozusagen
Delphi-Quellcode:
invisible := true
) oder es ist nicht sichtbar (also
Delphi-Quellcode:
visible := false
).

Jetzt hast du diese Zeile:
Delphi-Quellcode:
ImageX.visible := a = b;
Eigentlich sind das zwei Befehle und es lässt sich so umschreiben:
Delphi-Quellcode:
if a = b then
  ImageX.visible := true
else
  ImageX.visible := false
Also ist
Delphi-Quellcode:
a = b
ein Boolean (wahr oder falsch) und auf diesen Wert wird dann visible gesetzt. Das heißt, wenn er das Maximum erreicht, soll er unsichtbar werden, also muss
Delphi-Quellcode:
ImageX.visible
auf false gesetzt werden.

Also muss
Delphi-Quellcode:
a = b
false zurück liefern. Und da kannst du entweder die Bedingung negieren
Delphi-Quellcode:
not (a = b)
oder du negierst den Vergleich
Delphi-Quellcode:
a <> b
. Was du machst ist letztendlich egal, aber ich wollte nur erklären, warum die diese Lösungen vorgeschlagen wurden, und wie das so funktioniert ;)

MfG
Fabian

idefix2 13. Jul 2010 11:04

AW: Progressbar "manuell" steuern
 
Delphi-Quellcode:
if a = b then
  ImageX.visible := true
else
  ImageX.visible := false
Steinigt ihn! :wink:

Noch besser wäre natürlich

Delphi-Quellcode:
if (a = b) = true then
  ImageX.visible := true
else
  ImageX.visible := false

lbccaleb 13. Jul 2010 11:21

AW: Progressbar "manuell" steuern
 
Zitat:

Zitat von idefix2 (Beitrag 1035088)
Delphi-Quellcode:
if a = b then
  ImageX.visible := true
else
  ImageX.visible := false
Steinigt ihn! :wink:

Noch besser wäre natürlich

Delphi-Quellcode:
if (a = b) = true then
  ImageX.visible := true
else
  ImageX.visible := false

Was daran besser?? Denke wir vergleichen nicht auf True ;)

Valle 13. Jul 2010 11:28

AW: Progressbar "manuell" steuern
 
Zitat:

Zitat von lbccaleb (Beitrag 1035094)
Was daran besser?? Denke wir vergleichen nicht auf True ;)

Genau. Und da hinter steckt die Ironie. :P

Hier mal ohne schwer erkennbare Stilmittel:

Delphi-Quellcode:
  ImageX.visible := (a = b);
Liebe Grüße,
Valle

xZise 13. Jul 2010 22:14

AW: Progressbar "manuell" steuern
 
Oh my gooooood -.-

Ich wollte doch nur zeigen, was der Code macht. Ihn keinesfalls verbessern.

MG
Fabian


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:11 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