타이머 콤퍼넌트를 사용했습니다.
10초 이내에 버튼을 누르지 않으면 자동으로 차례가 넘어가는
보드게임을 제작하다가 발견했는데요,
시간이 잘 가다가 타이틀바(프로그램 제목줄 가운데 부분)를
마우스로 꼭 누르고 있으면 시간이 멈추네요 ㅠ.ㅠ
이래서야 시간제한이 의미가 없어집니다.
아래 프로그램 참조하세요. 어떻게 해야 시간이 안멈추고 갈까요?
미리 답변 감사드립니다.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls, StdCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
Timer1: TTimer;
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
i : Integer;
implementation
{$R *.DFM}
procedure TForm1.Timer1Timer(Sender: TObject); // Interval = 1000ms
begin
inc(i);
Label1.Caption:=inttostr(i);
end;
end.
저도 그와같은 문제에 봉착되었거든요.
제경우에는 시리얼포트에 들어오는 Data처리인데 누르고 10여초 있으면
설정해논 Readbuffer를 초과해서 공포의 파란화면이 나와요.
프로그램의 프라이어티를 아무리 크리티컬로하고 스레드도 크리티컬로 해도
마찬가지 입니다.
저도 잘 모르지만 Timer문제는 DelphiX의 DirectTimer를 한번 써 보심이..
잘된다는 보장은 못하겠지만...