ページ 11

タイマーのプログラム教えて下さい

Posted: 2006年12月20日(水) 14:41
by くまくん
Timer イベント、およびそこで参照してあるSetTimer関数、KillTimer関数などの
使い方(簡単な例)を教えて下さい。 ヘルプを見ましたが使い方がさっぱり分かりません。特に、SetTimer関数のヘルプにある、次の項などが理解できません。

lpTimerFunc
nElapse パラメータで指定した時間が経過したときに呼び出す関数へのポインタを指定します。

Posted: 2006年12月20日(水) 20:14
by konisi
Timerイベントは、プロジェクト(ノーマルウインドウベース又はDX対応アプリ)の時に使えます。


SetTimerは、
第一パラメータにウインドウのハンドル(#consoleで作った時の一意のハンドルの取得法は知りませんが、#promptなら_PromptSys_hWndだった気がします。)を入れて、
第二パラメータには識別ID(自分が使ってる奴の中でかぶってなければ何でもいいです。1とかでも。)を入れて、
第三パラメータにはタイムアウト値(たとえば、1秒ごとに呼び出したかったら1000にする。)を入れて、
第四パラメータにはAddressOf関数などで関数へのポインタを指定します。

コード: 全て選択

#prompt
Dim i As Long,ID As Long

ID=1
SetTimer(_PromptSys_hWnd,ID,1000,AddressOf(Func1))
Sleep(100000)
KillTimer(_PromptSys_hWnd,ID)

Sub Func1()
    Print i
    i=i+1
End Sub

コード: 全て選択

#prompt
Dim i As Long

SetTimer(_PromptSys_hWnd,1,1000,AddressOf(Func1))
Sleep(100000)
KillTimer(_PromptSys_hWnd,1)

Sub Func1()
    Print i
    i=i+1
End Sub

コード: 全て選択

Dim flag1 As Long,i As Long
Sub MainWnd_CommandButton1_Click()
    If flag1=1 then Exit Sub
    flag1=1
    i=0
    SetTimer(hMainWnd,1,1000,NULL)
End Sub

Sub MainWnd_CommandButton2_Click()
    If flag1=0 then Exit Sub
    flag1=0
    KillTimer(hMainWnd,1)
End Sub

Sub Timer()
    i=i+1
    SetWindowText(GetDlgItem(hMainWnd,EditBox1),Str$(i))
End Sub
追記:過去ログは検索しましたか?

Posted: 2006年12月21日(木) 12:43
by くまくん
code をありがとうございました。助かります。過去ログは一応見たのですがあまり
ピンと来なくて…,でも検索不足でした。