Delphi-Quellcode:
procedure TForm1.Timer2Timer(Sender: TObject);
begin
time2.enabled := false;
if JvXPProgressBar1.Position >= 100 then
begin
//Timer2.Interval := 3500; // habs hier manuell nur auf 3500 gesetzt weil sonst bekomme ich hunderte Fehlerfenster im Millisekundenabstand
Split(ExePfad+'Project1.exe', InstallVerz+'\Test.exe'); // Test aus Project1.exe extrahieren
JvXPProgressBar1.Position := 0;
//Timer3.Enabled := True; //was willste denn mit dem ...?
//Timer2.Enabled := False; // dann timer AUSMACHEN, was aber NICHT passiert! **
end else
begin
Label4.Caption := 'Aktuelle Datei: Test.exe';
JvXPProgressBar1.Position :=
JvXPProgressBar1.Position + 5;
InstallStatusGesamt := JvXPProgressBar2.Position;
Label25.Caption := Format('Verarbeitung Gesamt: %d%%',
[InstallStatusGesamt]);
JvXPProgressBar2.Position :=
JvXPProgressBar2.Position + 4;
end;
timer2.enabled := true; //und wieder einschalten
//das intervall hats du ja schon vorher gesetzt, das brauchte doch nicht wieder setzen...
end;
hallo, hab es mir zwar nicht genau angeschaut, aber du machst mehrere anfängerfehler... a) man disabled den timer, wenn man in eine ereignisbehandlungsroutine eintritt... b) man verändert nicht die eigentschaften des timers, so lange er aktiv ist... und noch 'ne frage, was willste mit den anderen timer anstellen??? änder mal deinen kode wie folgt..
bei dieser routine, solltest du wirklich nur den fortschritt anzeigen und nicht die arbeit machen...