Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Wie funktioniert eine Progressbar?? (https://www.delphipraxis.net/113328-wie-funktioniert-eine-progressbar.html)

STS301 6. Mai 2008 08:24


Wie funktioniert eine Progressbar??
 
hi

Meine Frage:

Wie genau funktioniert eine Progressbar??
Ich will nicht wissen welche Befehle man benötigt, damit sie funktioniert, sondern was und wie sie es macht.

Sucht sie sich die Befehle zwischen
Delphi-Quellcode:
Progressbar1.min:=0
//Anwendung
Progressbar1.Position:=100
und errechnet sich wie lange alles benötigt oder was macht sie genau??

Wäre für Antworten dankbar.

Luckie 6. Mai 2008 08:28

Re: Wie funktioniert eine Progressbar??
 
Woher soll sie wissen wie lange die Anweisungen dauern? Den Fortschritt musst du schon selber setzen. Entweder mit Position oder Step. Näheres dazu in der Hilfe unter Delphi-Referenz durchsuchenTProgressbar.

STS301 6. Mai 2008 08:35

Re: Wie funktioniert eine Progressbar??
 
ja schon,daher habe ich ja gemeint, dass sie sich die Befehle zwischen der Anordnung sucht.

Habe aber zur Funktion der Progressbar in der Delphi Hilfe nicht wirklich etwas gefunden

Luckie 6. Mai 2008 08:40

Re: Wie funktioniert eine Progressbar??
 
Also in meiner ist ein schönes Beispiel:
Delphi-Quellcode:
// Alle Datensätze in der Tabelle durchgehen

// und ProgressBar entsprechend nachführen.

procedure TForm1.Button1Click(Sender: TObject);

var
  i: Integer;
begin
  with ProgressBar1 do
  begin
    Min := 0;
    Max := Table1.RecordCount;
    Table1.First;
    for i := Min to Max do
    begin
      Position := i;
      Table1.Next;
    end;
      // Operationen mit Datensatz durchführen...
    end;
  end;
end;
Und für StepIt:
Delphi-Quellcode:
// Im folgenden Beispiel werden schrittweise immer 10 Prozent einer
// Datei in einen Puffer gelesen.
// Die Fortschrittsanzeige (ProgressBar) signalisiert den aktuellen Status.
// Voraussetzung ist, daß sich im Formular bereits ein TButton-Objekt und ein
// TProgressBar-Objekt befinden.

procedure TForm1.Button1Click(Sender: TObject);

const
  FName = 'c:\autoexec.bat';
var
  F: File;
  MyData: array[1..2048] of byte;
  BytesRead: LongInt;
begin
  AssignFile(F, FName);
  try
    Reset(F);
    ProgressBar1.Max := FileSize(F);
    if (ProgressBar1.Max > 10) then
      // Umfang der Bewegung, wenn StepIt aufgerufen wird
      ProgressBar1.Step := ProgressBar1.Max div 10
    else
      ProgressBar1.Step := ProgressBar1.Max;

    while (ProgressBar1.Position < ProgressBar1.Max) do
    begin
      // ein Datenpäckchen in den Puffer lesen
      BlockRead(F, MyData, ProgressBar1.Step, BytesRead);
      // Position der Fortschrittsanzeige mit StepIt nachführen
      ProgressBar1.StepIt; // move by Step amount
    end;
  finally;
    CloseFile(F);
  end;
end;

sirius 6. Mai 2008 08:41

Re: Wie funktioniert eine Progressbar??
 
Luckie, in deinem ersten Beispiel ist ein end; zu viel

Luckie 6. Mai 2008 08:44

Re: Wie funktioniert eine Progressbar??
 
Ich habe es nur aus der D6 Personal Hilfe kopiert. ;)

guidok 6. Mai 2008 09:14

Re: Wie funktioniert eine Progressbar??
 
Ein Progressbar ist nur eine "dumme" Anzeige, d.h. du gibst einen min und max Wert vor und abhängig davon was du anschließend als Pos zuweist, schlägt der Balken mehr oder weniger aus.

Also, wenn der Balken von links nach rechts wandern soll, musst du Pos schrittweise zwischen dem min und max-Wert erhöhen und zwar selbst!

STS301 6. Mai 2008 10:46

Re: Wie funktioniert eine Progressbar??
 
danke für die Antworten

und wie wird das dann als Komponente dargestellt?

es werden dann alle Schritte einzelln angegeben oder wie??

Für einfaches Erklähren wäre ich wirklich dankbar, weil ich stehe fast schon auf der Leitung

Luckie 6. Mai 2008 11:07

Re: Wie funktioniert eine Progressbar??
 
Wie wäre es, wenn du es einfach mal ausprobieren und dir angucken würdest?

STS301 6. Mai 2008 11:09

Re: Wie funktioniert eine Progressbar??
 
das 1.oder das 2. Beispiel

was ist StepIt??

Medium 6. Mai 2008 11:18

Re: Wie funktioniert eine Progressbar??
 
Nun wirf dir endlich einfach mal eine ProgressBar auf ein Formular, stell Min und Max auf irgendwelche Werte, und dann dreh an Position rum. Das was du dann siehst, ist alles was sie macht, end of story, keine Messungen bla sonstwas.

toms 6. Mai 2008 11:19

Re: Wie funktioniert eine Progressbar??
 
Zitat:

Zitat von STS301
das 1.oder das 2. Beispiel

was ist StepIt??

StepIt --> F1.

Zitat:

Um die Fortschrittsposition zu vergrößern,
erhöhen Sie Position durch einen Aufruf der Methode StepBy oder StepIt. Mit
der Eigenschaft Step kann die von StepIt verwendete Schrittweite festgelegt werden.

himitsu 6. Mai 2008 11:20

Re: Wie funktioniert eine Progressbar??
 
Zitat:

Zitat von STS301
was ist StepIt??

mal ganz im Ernst, hast du auch irgendwann in die OH gesehn?
> OH > IndexSuche > Delphi-Referenz durchsuchenStepIt

ProgressBar.StepIt zählt ProgressBar.Position um den Wert in ProgressBar.Step hoch.


bei Fragen zu Funktionen und Sonstigem von Delphi und Windows empfehle ich die Suchfunktionen in der Delphi-Hilfe (OH), der Delphi-PRAXiS und im MSDN.net .

[edit] RedBox ... huhuuuu, wo warst du?

STS301 6. Mai 2008 12:01

Re: Wie funktioniert eine Progressbar??
 
danke für die Antworten

@medium

Ich will wissen wie sie funktioniert um eine eigene Progressbar zu erstellen, aber es scheint, dass es am Besten wäre wenn ich eine auf der Progressbar basierende Komponente erstelle.

sirius 6. Mai 2008 12:21

Re: Wie funktioniert eine Progressbar??
 
Zitat:

Zitat von STS301
danke für die Antworten

@medium

Ich will wissen wie sie funktioniert um eine eigene Progressbar zu erstellen, aber es scheint, dass es am Besten wäre wenn ich eine auf der Progressbar basierende Komponente erstelle.

TProgressbar ist eine simple Kapselung der Common Controls Progress Bar von Windows. Da passiert von Delphiseite recht wenig, außer ein paar Messages.
Aber du kannst sie sicher recht einfach selber malen. Musst sie entweder von TCustomControl (mit Windowhandle) oder von TGraphicControl ableiten.

STS301 6. Mai 2008 12:26

Re: Wie funktioniert eine Progressbar??
 
danke für den Tipp :thumb:
werde es mir einmal anschauen

FAlter 6. Mai 2008 12:31

Re: Wie funktioniert eine Progressbar??
 
Hi,

oder du siehst die an wie TGauge gebastelt ist - die Beispielkomponente von Delphi. Die sollte sogar Personal Editionen beiliegen.

Das wichtigste ist eigentlich, dass du drei Werte (Minimum, Maximum uns Position) hast und du dir daraus errechnen musst, wie weit du zeichnen willst (Verhältnisgleichung (Position-Min):(Max-Min)=ZeichnenBis:Breite (oder Höhe)).

Mfg
FAlter


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