Trage jeweils deine Testdaten ein, mit denen bei Dir angeblich '1' rauskommt.
Dein Beispiel funktioniert bei mir richtig.
Aber hier:
Delphi-Quellcode:
function TForm1.Tagedazwischen(vor, nach:TDate):Integer;
begin
if compareDate(vor,nach) >= 0 then Result:= daysbetween(vor,nach)
Else if compareDate(vor,nach) < 0 then Result := -1;
end;
Das Ergebnis bleibt immer 1.
Und eine Meldung lautet:
[Warnung] Unit1.pas(94): W1035 Rückgabewert der Funktion 'TForm1.Tagedazwischen' könnte undefiniert sein
Warum?
Aufgerufewn wird die Funktion hier:
Delphi-Quellcode:
procedure TForm1.Zeitraum(dt:TDate);
var
vorTag:TDate;
begin
Gauge1.Progress:=0; Gauge2.Progress:=0;Gauge3.Progress:=0;
vorTag:= strtoDate('17.04.2015');
if wievieltePackung(Tagedazwischen(dt, vorTag)) >= 1 then
Gauge1.Progress:= round(100 / 28 * Tagedazwischen(dt, vorTag));
Dabei spielt es keine Rolle ob ich Zeitraum(Now) oder Zeitraum(Date) schreibe.