Problem z konwersją StrToDate

0

Na formie umiescilem 3 Edit, 3 Label oraz Buttona. W onclick buttona mam taka procedurke:

procedure TForm1.Button1Click(Sender: TObject);

var str1 : string;
    data : TDate;

begin

str1 := Edit1.Text + ' ' + Edit2.Text + ' ' + Edit3.Text;

data := StrToDate(str1);

Label1.Caption := FormatDateTime('dd', data);
Label2.Caption := FormatDateTime('mm', data);
Label3.Caption := FormatDateTime('yyyy', data);

end;

Po uruchomieniu programu wpisuje w edity:

edit1: 07
edit2: 08
edit3: 2004

klikam buttona, program sie wylacza i wyskakuje mi blad EConvertError ''07 08 2004' is not a valid date'. W systemie mam ustawiony separator daty jako ' '. Probowalem tez zmieniac format daty w systemie, ale nic nie pomaga :-(

0
No cóż F1 załatwia sprawę :-)

var
  TempDate: TDateTime;
begin
    TempDate := StrToDateTime('99/99/1998');
end;

/// czyli musisz dać / zamiast  (SPACJA)
0

/// czyli musisz dać / zamiast (SPACJA)

Lepiej zamiast spacji użyć DateSeparator, co zresztą jest jasno napisane pod F1

0

Używałem '/' oraz DateSeparator ale nie pomagało.

0

chłopie popieprzyłeś na maksa! format daty (TDate) jest taki: 00-00-0000, a nie jekiś spacje pomiędzy. [glowa]

0

Ludomir, jak próbujesz mi pomóc to najpierw przeczytaj o co mi chodzi i czego już próbowałem.

W systemie mam ustawiony separator daty jako ' '
. Poza tym próbowałem używać wszystkich separatorów ale żaden nie działa, więc nie w tym tkwi problem.

0

a nie masz moze ustawionego formatu daty yyyy mm dd? Czyli w druga strone?

Zeby sie nie potykac na takich sprawach zamiast StrToDate proponowalbym zamiane zawartosci editow na Word i zastosowanie EncodeDate lub dla bezpieczenstwa zupelnego TryEncodeDate

0

Dzieki pq, EncodeDate zadzialalo :D. Pozostalym tez dziex.

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