procedure TTimer.UpdateTimer;
begin
KillTimer(FWindowHandle, 1);
if (FInterval <> 0) and FEnabled and Assigned(FOnTimer) then
if SetTimer(FWindowHandle, 1, FInterval, nil) = 0 then
raise EOutOfResources.Create(SNoTimers);
end;
В FMX иначе, интересно, почему так? есть какая то причина, или просто поленились дописать?
procedure TTimer.UpdateTimer;
begin
{...}
FTimerHandle := FPlatformTimer.CreateTimer(FInterval, Timer);
if FTimerHandle = 0 then
FEnabled := False; // Упс.. таймер просто молча сдохнет)) и будешь гадать что случилось с приложением, почему оно "зависло"
end;
Вопрос
Nick Peterson
Реализация VCL
procedure TTimer.UpdateTimer; begin KillTimer(FWindowHandle, 1); if (FInterval <> 0) and FEnabled and Assigned(FOnTimer) then if SetTimer(FWindowHandle, 1, FInterval, nil) = 0 then raise EOutOfResources.Create(SNoTimers); end;
В FMX иначе, интересно, почему так? есть какая то причина, или просто поленились дописать?
procedure TTimer.UpdateTimer; begin {...} FTimerHandle := FPlatformTimer.CreateTimer(FInterval, Timer); if FTimerHandle = 0 then FEnabled := False; // Упс.. таймер просто молча сдохнет)) и будешь гадать что случилось с приложением, почему оно "зависло" end;
Ссылка на комментарий
0 ответов на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.