Einzelnen Beitrag anzeigen

Benutzerbild von wicht
wicht

Registriert seit: 15. Jan 2006
Ort: Das schöne Enger nahe Bielefeld
809 Beiträge
 
Delphi XE Professional
 
#9

Re: progressbar problem/gauge

  Alt 4. Dez 2009, 19:16
Ich versuchs mal.. aber nur weil mir langweilig ist, da ich auf eventuelle Antworten auf meinen Thread warte...

Delphi-Quellcode:
procedure TForm1.sButton1Click(Sender: TObject);
var i : integer;
begin
  zeit := strtointdef(sedit1.text, 1);
  if sedit1.text = 'then begin
    sedit1.text := '1';
  end;
  ms := zeit * 60 * 1000;
  // Das Intervall bestimmt, in welchen Abständen der Timer aufgerufen wird.
  // Also nehmen wir 1000ms = 1sek
  // Die Schleife war hier völlig über, weil sie nichts anderes gemacht
  // hat, als sgauge1.Position auf 100 zu setzen (wenn Position 0 war).
  timer1.Interval := 1000;
  sgauge1.Position := 0;
  sgauge1.MinValue := 0;
  sgauge1.MaxValue := ms;
  Timer1.Enabled := true;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Timer1.Enabled := false;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var i: integer;
begin
  // Und hier wird der Progress eben erhöht.
  // Warum sollte hier 100 mal gebeept werden?
  sgauge1.progress := sgauge1.progress + 1000;
  if sgauge1.progress = sgauge1.max then
  begin
    // Wenn Ende erreicht, piepen
    windows.beep(1000, 100);
  end;
end;
Hui, der rote Kasten... Whatevers Beispiel wäre auch okay, wenn das Timer-Intervall auf 1000 stehen würde, man auf Gauge1.Progress 1000 addieren würde und man Sleep(1000) benutzen würde. Das liegt daran, weil du hier mit Millisekunden hantierst - warum eigentlich?

HTH - und weil Freitag ist und ein Bierchen drin ist keine Garantie auf Richtigkeit, ausserdem ist alles ungetestet.
http://streamwriter.org

"I make hits. Not the public. I tell the DJ’s what to play. Understand?"
  Mit Zitat antworten Zitat