Delphi - warunek się nie sprawdza If Then Else

0

Witam
Piszę coś tam sobie z odliczaniem czasu, czyli mam godzinę systemową, ustawiam drugą swoją godzinę i ma odliczać różnię.
Wszystko to w Timerze.
Na końcu jest warunek: jeśli czas systemowy jest większy od ustawionego mojego to wklepuj "aktywne", jesli nie to "odliczanie...".

 jvEdit1.Text:=FormatDateTime('HH:mm:ss', Now); //czas systemowy
  Time1 := strToTime(jvEdit1.Text);//godz. systemowa
   Time2 := czas_pil.Time;//uzytkownika //DateTimePicker
   jvEdit2.Text:= (FormatDateTime('HH:mm:ss', (Time2 - Time1)));
  
if Time1 > Time2 then
   jvEdit3.Text:='aktywne' else jvEdit3.Text:='odliczanie...';
end;

Niestety powyższy warunek nie działa, gdy odliczy sobie do 0000 i dalej.

Jak to zrobić inaczej?

0
  1. Dodaj do uses dwa unity: DateUtils i Types
  2. Zmień warunek na następujący:
if CompareTime(time1, time2) = GreaterThanValue then
  jvEdit3.Text:='aktywne' else jvEdit3.Text:='odliczanie...';
  1. Powinno teraz działać
0

Dobra, naskrobałem takie coś: :)

var
  A, B : TTime;
  Result : TValueRelationship;
begin
Edit1.Text:=FormatDateTime('HH:mm:ss', Now);

  A := StrToTime(Edit1.Text);
  B := DateTimePicker1.Time;

  Result := CompareTime(A, B);

  case Result of
    EqualsValue: Edit2.Text:='godzina "zero"';
    LessThanValue: Edit2.Text:='odliczanie...';
    GreaterThanValue: Edit2.Text:='aktywne';
  end;
end;

Działa bardzo fajnie. :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1