Sprawdzanie TTime

0

ort!, ze mamy na formie MaskEdita (maska ustawiona na ShortTime). Chcialbym, aby program sprawdzal, czy czas jest prawidlowy. W OnExit MaskEdita wpisalem takie cos:

var
 Czas : TTime;
begin
 try
  Czas := StrToTime(CzasEdit.Text);
 except
  Czas := Now;
  CzasEdit.Text := TimeToStr(Czas);
 end;

Wszystko dziala ok, gdyby nie fakt, ze jesli zmienie czas nawet na prawidlowy, to i tak mi sie zmienia na jeszcze inny.

0

Czas jest dobrze pobierany, błąd pojawia się tutaj:

CzasEdit.Text := TimeToStr(Czas);

Na twoim miejcu użyłbym do tego zwykłego edita, lub 2 editów - osobny na godziny i minuty. Albo w ten sposób:

procedure TForm1.CzasEditExit(Sender: TObject);
var
  Czas : TTime;
begin
  try
    Czas := StrToTime(CzasEdit.Text);
  except
    Showmessage('Wpisano niepoprawny czas.');
    CzasEdit.SetFocus;
  end;
end;

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