Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Не срабатывает действие.... [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 ;


Наверх

Титульная страница Поиск, карта сайта Написать письмо