Jetzt hab ich's:
Das liegt
nicht an der Kombination von SongLength und Position,
sondern an dem Befehl Sleep(), der eine Zahl vom Typ Cardinal erwartet, aber mit SongLength auch einen Integer-Wert enthält.
Wenn dieser nun negativ wäre, dann weiß er nix mit Sleep(milliseconds: Cardinal) anzufangen und gibt eine Fehlermeldung raus.
Im Klartext:
Das funktioniert einwandfrei:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var x, z: Integer; y: Cardinal;
begin
x :=-7;
y := 5;
z := x + y; //ergibt also -7 + 5 = -2, bei z vom Typ Integer kein Problem!
end;
Aber hier gibt's einen Fehler:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var x: Integer; y, z: Cardinal;
begin
x :=-7;
y := 5;
z := x + y; //z =-2, aber ein Cardinal-Typ -> Fehlermeldung
end;
Das geht zwar, es gibt aber trotzdem eine Warnmeldung:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var x: Integer; y, z: Cardinal;
begin
x := 2;
y := 5;
z := x + y; //Warnmeldung, da x auch negativ sein könnte
end;
Zitat von
Aenogym:
zur not kannst du für die betreffende zeile ja die warnung ausschalten (ging
imho mit einem compiler-schalter).
Wie geht das