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

ActiveBasicでのプログラミングでわからないこと、困ったことなどがあったら、ここで質問してみましょう(質問を行う場合は、過去ログやWeb上であらかじめ問題を整理するようにしましょう☆)。
返信する
メッセージ
作成者
くまくん

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

#1 投稿記事 by くまくん »

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

lpTimerFunc
nElapse パラメータで指定した時間が経過したときに呼び出す関数へのポインタを指定します。
konisi
記事: 893
登録日時: 2005年7月25日(月) 13:27
お住まい: 埼玉県東松山市
連絡する:

#2 投稿記事 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
追記:過去ログは検索しましたか?
Website→http://web1.nazca.co.jp/himajinn13sei/top.html
ここ以外の場所では「暇人13世」というHNを主として使用。

に署名を書き換えて欲しいと言われたので暇だしやってみるテスト。
くまくん

#3 投稿記事 by くまくん »

code をありがとうございました。助かります。過去ログは一応見たのですがあまり
ピンと来なくて…,でも検索不足でした。
返信する