Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Timerproblem (Splitfile) (https://www.delphipraxis.net/103722-timerproblem-splitfile.html)

Tommy1988 20. Nov 2007 21:46


Timerproblem (Splitfile)
 
Guten Abend, die Herren und Damen.

Ich habe ein Kleines Problem. Undzwar habe ich mir eine Art "Installer" geschrieben.
Mit Interface und allem ..

So.. wenn der User alle Eingaben gemacht hat, wird ein Button mit der Aufschrft Installieren sichtbar.
Folgnder Code steht drin:
Delphi-Quellcode:
JvPageControl1.ActivePage := TabSheet5; // Zum Tabsheet gehen, wo die ProgressBar's sind
 BtnBack.Visible := False; // Zurückbutton deaktivieren
 BtnForward.Visible := False; // Vorwertsbutton ebensfalls
 Timer2.Enabled := True;
Timer 2 wird gestartet.
Folgendes steht drin:
Delphi-Quellcode:
// DIe Progressbars werden "einfach so erhöht".. nocherst. Das ändere ich bald

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;

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
   Timer2.Enabled := False; // dann timer AUSMACHEN, was aber NICHT passiert! **
   JvXPProgressBar1.Position := 0;
   Timer3.Enabled := True;
 end;
** Hier ist der Fehler.
Die Splitroutine wird alle 3500ms wieder aufgerufen. Der Timer wird also komischerweise nicht deaktiviert? Timer 3 (nächste Datei) wird auch nicht aktiviert..

Was kann das sein?

lbccaleb 20. Nov 2007 22:21

Re: Timerproblem (Splitfile)
 
probiers mla mit:


Delphi-Quellcode:
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
   Timer2.Enabled := False; // dann timer AUSMACHEN, was aber NICHT passiert! **
   JvXPProgressBar1.Position := 0;
   Timer3.Enabled := True;
end;
mfg

Tommy1988 20. Nov 2007 22:29

Re: Timerproblem (Splitfile)
 
Öhm.. du meinst sicher
Delphi-Quellcode:
if JvXPProgressBar1.Position <= 100 then
nicht
Delphi-Quellcode:
if JvXPProgressBar1.Position => 100 then
oder?

Klappt leider auch nicht. Ich hab es mal so versuch:
Delphi-Quellcode:
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;
   Timer2.Enabled := False; // dann timer AUSMACHEN, was aber NICHT passiert! **
end else
 begin
  // nix
 end;
Das geht soweit. Nur bekomme ich die Meldung, dass in diesr Zeile (JvXPProgressBar1.Position := 0;)
"" kein gültiger Integerwert wäre.

lbccaleb 20. Nov 2007 22:50

Re: Timerproblem (Splitfile)
 
jetzt erstmal ne frage, dieses hier:

Delphi-Quellcode:
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
   Timer2.Enabled := False; // dann timer AUSMACHEN, was aber NICHT passiert! **
   JvXPProgressBar1.Position := 0;
   Timer3.Enabled := True;
end;

wann soll das aufgerufen werden??? nach den 100 oder vor den 100???

Tommy1988 20. Nov 2007 22:51

Re: Timerproblem (Splitfile)
 
Kurze Frage, kurze Antwort: Wenn 100 erreicht ist oder die ProgressBar über 100 ist.

Dass "" kein gültiger Integerwerden ist, sagt er sogar wenn ich die entsprechende zeile herausnehme?

lbccaleb 20. Nov 2007 23:02

Re: Timerproblem (Splitfile)
 
Zitat:

Zitat von Tommy1988
Kurze Frage, kurze Antwort: Wenn 100 erreicht ist.

Dass "" kein gültiger Integerwerden ist, sagt er sogar wenn ich die entsprechende zeile herausnehme?

nein dann mein ich if
Delphi-Quellcode:
JvXPProgressBar1.Position => 100 then
!!!

Tommy1988 20. Nov 2007 23:03

Re: Timerproblem (Splitfile)
 
"=>"

Das gibt es so Meiner Meinung nach nicht. Der Compiler meckert auch :|

Hier nochmal alles, so wie ich es momentan probiere:

Delphi-Quellcode:
procedure TForm1.Timer2Timer(Sender: TObject);
begin
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;
 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;
end;
Ich verstehe das einfach nicht. Normal MÜSSTE (!!!) doch der Timer3 angehen, und Timer2 aus?

lbccaleb 20. Nov 2007 23:10

Re: Timerproblem (Splitfile)
 
eigentlich muss es das geben aber egal, gibts ne einfache lösung für:


Delphi-Quellcode:
if JvXPProgressBar1.Position > 99 then

Tommy1988 20. Nov 2007 23:12

Re: Timerproblem (Splitfile)
 
die lösung ist so einfach, dass der fehler noch immer kommt :D

[b]Wo der Fehler herkommt:
ich habe herausgefunden, dass wenn ich
Delphi-Quellcode:
 Split(ExePfad+'Project1.exe', InstallVerz+'\Test.exe'); // Test aus Project1.exe extrahieren
Rausnehme, alles funktioniert. Aber das ist ja nicht Zweck, dass ich das wichtigste Überhaupt herausnehme.

lbccaleb 20. Nov 2007 23:14

Re: Timerproblem (Splitfile)
 
ok also liegt es gar nicht an der funktion, sonder an den sachen irgendwo die du drinne aufrufst...

was genau ist denn überhaupt der fehler??

und was ist split für ne funktion und woher hast du die???


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