実行するには


 2004-10-05 11:39:42  No: 116782  IP: [192.*.*.*]

今、コマンドボタンを使って実行するようにしているのですが、何か他の関数などを使って実行する方法はないでしょうか?

編集 削除
特攻隊長まるるう  2004-10-05 12:03:22  No: 116783  IP: [192.*.*.*]

>今、コマンドボタンを使って実行するようにしているのですが
それはコマンドボタンのクリック(Click)イベントで実行している
という事ですか?コマンドボタンには他にも GotFocus,DragDrop...
などのイベントが用意されています。同様に他のコントロール
にも様々なイベントが用意されています。自分の望むタイミングで
発生するイベントが存在するならそれを利用してみて下さい。

無いなら…自作して下さい。イベントも独自のものを定義する事が
できます。…全くランダムに実行する事もできなくは無いですが、
プログラムとしてスゴいものになりそうです。まずは自分がどういう
条件で実行したいか?具体的なタイミングを考えて下さい。

編集 削除
 2004-10-05 13:09:23  No: 116784  IP: [192.*.*.*]

Private Sub CommandActivate_Click()
    Dim ReturnCode
    :
    :
    省略
    :

    
End Sub

Private Sub CommandDeactivate_Click()
    ' 音声認識を終了します。
    End Select
 
 Dim Result As Long
    Result = TOSTTSX1.Speak(txtEdit.Text)
    If Result <> 0 Then
        MsgBox ("読み上げエラーが発生しました。(エラーコード:" + CStr(Result) + ")")
    End If

End Sub

今、このようなプログラムを作成中なのですが、CommandDeactivateクリックのとこを数秒おいてから実行したいのですが・・・どのようにしたらいいでしょう??

編集 削除
マグ  2004-10-05 13:21:55  No: 116785  IP: [192.*.*.*]

初心者なので参考になるかどうかはわかりませんが、

秒数が決まっているなら、Sleep関数でどうでしょうか?

[VB.NET]

Private Declare Sub Sleep Lib "kernel32" ( _
        ByVal dwMilliseconds As Long)
Sleep(1000) '1秒待つ

編集 削除
特攻隊長まるるう  2004-10-05 13:39:41  No: 116786  IP: [192.*.*.*]

[VB.NET]の場合、[.NET Framework クラス ライブラリ]でも
用意されてます。定義済み関数みたいな使い方ができます。
    System.Threading.Thread.Sleep(1000)
オイラはサンプルでたまに使ってるんだけどね。
http://madia.world.coocan.jp/cgi-bin/VBBBS2/wwwlng.cgi?print+200409/04090099.txt

編集 削除
Dental  2004-10-05 13:41:55  No: 116787  IP: [192.*.*.*]

マグさん………何もAPIを使わずとも、VB.NET なら
System.Threading.Thread.Sleep で十分では?

それに、DWORD型を As Long で宣言しちゃってるし……(脱力)

編集 削除
 2004-10-05 13:51:28  No: 116788  IP: [192.*.*.*]

Sleep関数を使ったらその間処理が行われないのではないですかね??数秒間の間も処理は行われてて、ある時間が来ると次の処理に移る方法はないですか??

編集 削除
魔界の仮面弁士  2004-10-05 13:52:05  No: 116789  IP: [192.*.*.*]

Sleep APIに対応するのは、Sleepメソッドです。>マグさん
APIの対応表が下記にあるので、参考になるかも。
http://www.microsoft.com/japan/msdn/net/general/win32map.asp

ただ、今回の質問は、.NETでは無い様にも見えますね。
(開発環境が明示されていないので、どちらにも取れますけれども)

> 数秒おいてから実行したいのですが
Timerコントロールを使って、数秒後に処理すると言う手も。

編集 削除
マグ  2004-10-05 15:00:20  No: 116790  IP: [192.*.*.*]

>System.Threading.Thread.Sleep(1000)

このような関数があったとは知りませんでした。

>それに、DWORD型を As Long で宣言しちゃってるし……(脱力)

それは、かなり、前にそのソースをコピー&ペーストしたソースだから
詳しくはわからないんです。
Sleep関数は一回も使っていませんし・・・
でも、動作確認はしています。

>Sleep APIに対応するのは、Sleepメソッドです。>マグさん
>APIの対応表が下記にあるので、参考になるかも。
>http://www.microsoft.com/japan/msdn/net/general/win32map.asp

ありがとうございます。
参考になりすぎました。
APIの知識はあまりありませんから(笑
ひょっとしたら、皆無に等しいというほどです。

編集 削除
特攻隊長まるるう  2004-10-05 15:15:05  No: 116791  IP: [192.*.*.*]

>それは、かなり、前にそのソースをコピー&ペーストしたソースだから
>詳しくはわからないんです。
>Sleep関数は一回も使っていませんし・・・
>でも、動作確認はしています。
変数の型が違うのでちゃんと[VB.NET]用に読み替えないと、
とんでもない値が返って来たり、エラーになったり…。
http://www.microsoft.com/japan/msdn/net/vbtransitionguide/chapter4/chapter4_3.asp

Timer を使ったり[VB6.0]は↓こっちのスレでいいんじゃないでしょうか?。
http://madia.world.coocan.jp/cgi-bin/VBBBS2/wwwlng.cgi?print+200410/04100015.txt
…先の展開は分かりませんが。

編集 削除
マグ  2004-10-05 17:06:44  No: 116792  IP: [192.*.*.*]

わかりました。

今後、宣言に気をつけます。

編集 削除