![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Не срабатывает действие.... [D7]
Pomestnik © (2005-01-11 22:47:00)procedure TForm1.Button1Click(Sender: TObject);
var
D : TDate;
S,F : string;
begin
S := DataModule7.DolgTable.Fields[2].Text;
D := date;
F := DateToStr(D);
if s = f then
ShowMessage( ' Должен');
if StrToDate(f) > StrToDate(S) then;
label3.Caption := 'ooo';
ShowMessage( 'NO Должен');
end;
КОгда совпадает первое условие (s=f ) , тогда сообщение появляется
А вот когда совпадает второе условие( StrToDate(f) > StrToDate(S) ) , то сообщение не появляется, зато надпись на лейбле меняется.
Кто - нибудь знает из за чего это может быть?
Neznaika (2005-01-12 13:30:00) [1]IMHO если StrToDate(S) прошло успешно, значит там дата...?
А сравниваем мы уже послеконвертации полученные даты.
Anatoly Podgoretsky (2005-01-12 13:24:00) [2]А я повторяюсь (нудное выделено
var
D : TDate;
S,F : string;
begin
S:= DataModule7.DolgTable.Fields[2]. Text;
Так что это не дата, а строка, а вот что в ней и неизвестно.
Neznaika (2005-01-12 13:15:00) [3]
> кроме того это не дата, а строка.
Повторюсь ...
StrToDate(S)
Ж(
Anatoly Podgoretsky (2005-01-12 13:10:00) [4]Неизвестно это "DataModule7.DolgTable.Fields[2].Text;" кроме того это не дата, а строка.
Neznaika (2005-01-12 12:57:00) [5]
> Anatoly Podgoretsky © (12.01.05 12:50) [8]
По-моему он сравнивает даты => StrToDate(f);
Что там не известно?
Anatoly Podgoretsky (2005-01-12 12:50:00) [6]Даты можно сравнивать, но ты же сравниваешь не даты, а строки, при том одна из них неизвестна.
Neznaika (2005-01-12 12:48:00) [7]
> if StrToDate(f) > StrToDate(S) then;
> label3.Caption := 'ooo';
> ShowMessage( 'NO Должен');
REPLACE
if StrToDate(f) > StrToDate(S) then begin
label3.Caption := 'ooo';
ShowMessage( 'NO Должен');
end;
Pomestnik (2005-01-12 11:26:00) [8]Тут у меня просто сравниваются дата введнённая в таблице с
"сегодняшней" датой...
Даты же можно сравнивать?
Palladin (2005-01-11 23:21:00) [9]Второй пункт отменяется. StrToDate был визуально воспринят с точностью до наоборот...
Palladin (2005-01-11 23:19:00) [10]Какое условие?
текст выведет в любом случае, он никаким условием не контролируется. это первое, второе: ты думаешь сравнивая строковое представление дат ты сравниваешь сами даты?
Anatoly Podgoretsky (2005-01-11 23:16:00) [11]Нет условие не совпалает, вывод ведется всегда вне зависимости от условия.
Pomestnik (2005-01-11 23:05:00) [12]Не в этом (хотя мой касяк это не заметил!!) дело
if StrToDate(f) > StrToDate(S) then
ShowMessage( ' Не отдал ');
label3.Caption := '33333333';
if StrToDate(s) = StrToDate(f) then
ShowMessage(' Должен сегодня отдать ');
ВСё равно только на лэйбл текст выводит(значит условие совпадает)
Palladin (2005-01-11 22:50:00) [13]грубая ошибка. форматируй нормально код и больше не будешь их допускать
if StrToDate(f) > StrToDate(S) then ;