APIを使用してタイマーイベントを自作する コンポーネントを作る時などには役に立つと思います。 ■必要なコンポーネント
■使用するAPI関数
■ソースは下記のようになります。
type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); private { Private 宣言 } TimerID : Integer; public { Public 宣言 } end; var Form1: TForm1; function TimerProc(Dialog: HWnd; Msg: Longint; idEvent: UINT; dwTime:DWORD):Boolean;stdcall;
procedure
TForm1.Button1Click(Sender:TObject); begin //タイマー始動 TimerID := SetTimer(Form1.Handle, 0, 1000, @TimerProc); end; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin //タイマー終了 KillTimer(Form1.Handle, TimerID) ; end; function TimerProc(Dialog: HWnd; Msg: Longint; IDEvent: UINT; dwTime: DWORD): Boolean; begin Beep;
end;