Delphi-PRAXiS
Seite 1 von 2  1 2      

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??


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:36 Uhr.
Seite 1 von 2  1 2      

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