2013-01-22 4 views
2

가능한 중복 : 윈도우 7 프로 (64 비트)에
Delphi Timer: Time before next eventTTimer가 화재로 인해 출동하기 전에 남은 시간을 얻을 수있는 방법이 있습니까?

사용하여 C++ 빌더 XE :

나는 폼에 TTimer 있습니다.

내가 원하는 것은 진행률 표시 줄을 업데이트하여 OnTimer 이벤트 처리기를 호출하기 전에 TTimer의 남은 기간을 표시하는 것입니다.

TTimer의 간격이 OnTimer 이벤트를 발생시킬 때까지 오래 걸릴 수있는 방법이 있습니까?

+0

그리고 [Timer에서 Timelft를 얻는 방법] (http://stackoverflow.com/q/8763976/576719)은 위의 질문과 정확히 동일합니다. –

답변

2

아니요, Windows 타이머는 인터페이스를 제공하지 않습니다.

어쨌든 진행률 표시 줄을 업데이트 할 예정이므로 추적하려는 타이머보다 더 자주 실행되는주기적인 코드가 이미 있습니다. 해당 코드는 타이머에 의해 트리거되므로 타이머 코드를 사용하여 현재 시간을 확인하고 추적하려는 타이머에 대해 이전에 계산 한 만기 시간을 비교하십시오.

그런 다음 더 이상 필요하지 않으므로 첫 번째 타이머를 제거하십시오. 대신 "추적"타이머를 사용하여 원래 코드가 실행될 때 트리거하십시오. 궁극적으로 코드를 실행할 시간인지 여부를 지속적으로 확인하는 하나의 타이머가 있습니다. 시간이되면 코드를 실행하십시오. 그렇지 않으면 진행률 표시 줄을 대신 업데이트하십시오.

+0

TTimer.Enabled 속성에 setter를 추가하여 현재 타임 스탬프를 설정 한 다음 "remaining"또는 이와 비슷한 이름의 새 속성을 노출하는 것은 어떻습니까? –

+0

"이전에 타이머에 대해 계산 한 만기일"이라고 @ 레오나르도. 구성 요소 외부에 계산을 넣었는지 여부에 관계없이 질문에 대한 응답은 변경되지 않습니다. OS와 라이브러리는 아무런 지원도하지 않으므로 별도로 구현해야합니다. –

+0

질문은 'TTimer'에서이 작업을 수행 할 수 있는지 여부입니다. 타이머가 활성화 된 순간에 'Interval' 속성이 있습니다. 'OnExecute' 메쏘드 안에서 타이머를 무력화시키는 것만으로도 충분한 디스플레이가 예상 될 것입니다. 어쨌든, LU RD는 이것에 관해 많은 것을 논하는 중복 된 질문을 가리키고 있습니다 (이것에 대한 비슷한 대답과 경고를 포함하여 몹시 정확하지는 않습니다). 그래서 어떤 경우에도 중복 된 것처럼 보입니다 :-) –