![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Тема: проблема с TDateTime [D6, WinXP]
msm © (2005-02-02 16:35:00)Где ошибка, оно ни фига не бип?
var
Form1: TForm1;
Srabotka: TdateTime;
Ostatok: TdateTime;
Interval: TdateTime;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
Interval:=DateTimePicker1.Time;
Srabotka:=Time + Interval;
Timer1.Enabled:=True;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Ostatok:=Srabotka - Time;
Label1.Caption:=TimeToStr (Ostatok);
If Srabotka = Time then beep;
end;
end.
Jay1982 (2005-02-02 17:18:00) [21]ALS © (02.02.05 17:15) [20]
Только не нуля ж меньше, а скажем 0.01
Reindeer Moss Eater (2005-02-02 17:17:00) [22]А посмотреть что там в переменной на момент проверки и хлопнуть себя по лбу - это не для нас.
ALS (2005-02-02 17:15:00) [23]
Ostatok := Srabotka - Time;
Label1.Caption:=TimeToStr (Ostatok);
If Ostatok <= 0 then
begin
Timer1.Enabled := False;
beep;
end;
Reindeer Moss Eater (2005-02-02 17:15:00) [24]Применить вместо знака равно знак меньше или равно
msm (2005-02-02 17:14:00) [25]>DVM © (02.02.05 17:03) [10]
Не помогает, пробовал.
msm (2005-02-02 17:13:00) [26]>Johnmen © (02.02.05 17:10) [15]
Полностью согласен, а как быть в такой ситуации?
Reindeer Moss Eater (2005-02-02 17:10:00) [27]Ostatok:=Srabotka - Time;
Label1.Caption:=TimeToStr (Ostatok);
If Srabotka = Time then beep;
В первой строке Time имеет одно значение.
А в третьей - совсем другое.
Johnmen (2005-02-02 17:10:00) [28]Всё от того, что в
DateTimePicker1.Timeлежит и время и дата, и => дальнейшие действия приобретают другой оттенок...:)
Reindeer Moss Eater (2005-02-02 17:07:00) [29]Посмотри внимательно на свой код, а про это будешь потом думать.
msm (2005-02-02 17:06:00) [30]>Reindeer Moss Eater © (02.02.05 17:02) [9]
А для Вас, похоже, procedure TForm1.Button1Click = procedure TForm1.Timer1Timer(Sender: TObject) ?
Reindeer Moss Eater (2005-02-02 17:04:00) [31]Точность здесь не при чем.
Парень запутался в своих переменных.
Virgo_Style (2005-02-02 17:04:00) [32]
> Почему Srabotka <> Time, хотя Ostatok (Srabotka-Time) =
> 0:00:00 ?
Вопрос на сообразительность: равно ли число "пи" 3.1415926?
Ответ - Нет. Где-то в тысячных (десяти-, милионных...) не равно. Как и у тебя.
Проверяй Abs(разность)<точность.
DVM (2005-02-02 17:03:00) [33]тогда уж
var MyTime ....
....
MyTime:=Time;
Ostatok:=Srabotka - MyTime;
Label1.Caption:=TimeToStr (Ostatok);
If Srabotka = MyTime then beep;
Reindeer Moss Eater (2005-02-02 17:02:00) [34]А причем здесь остаток?
Мой рост + 300 000 км = расстояние до луны.
Почему же я ниже чем луна?
Странно да?
Srabotka:= Time+ Interval;
If Srabotka= Timethen beep;
DVM (2005-02-02 17:01:00) [35]Ostatok:=Srabotka - Time;
Label1.Caption:=TimeToStr (Ostatok);
If Srabotka = Timethen beep;
Два выделенных Time - по-идее разные Time
DVM (2005-02-02 16:59:00) [36]
> Почему Srabotka <> Time - этого то я и не понимаю
не надо полагаться на таймеры.
msm (2005-02-02 16:58:00) [37]Почему Srabotka <> Time, хотя Ostatok (Srabotka-Time) = 0:00:00 ?
Reindeer Moss Eater (2005-02-02 16:55:00) [38]Чего поподробнее?
msm (2005-02-02 16:54:00) [39]А поподробнее можно?
А то получается, что 3<>2 т.к. 3<>2
Reindeer Moss Eater (2005-02-02 16:49:00) [40]Почему Srabotka <> Time - этого то я и не понимаю
Они не равны потому что они разные.