アプリ版:「スタンプのみでお礼する」機能のリリースについて

今、Visual Basic でスライドショーのプログラムを作っています。
その中で、プログラムの一時停止(それに伴う再開)という事をしたいのですが、どのようにすればよいかわかりません。
教えて下さい。お願いします。

A 回答 (5件)

>一時停止


ボタンクリックで、
val_restart = 0
do
  doevents
  if val_restart = 1 then
exit do
end if
loop

>再開
 ボタンクリックで
 val_restart = 1

やってることわかります?
(試してないので、自信なし)
    • good
    • 0
この回答へのお礼

ありがとうございます。
さっそくやってみます。

お礼日時:2001/10/26 21:42

途中でSleepを挟んだ方がいいかも。



(Genaral) (Declarations)に

Private Declare Sub Sleep Lib "KERNEL32" (ByVal dwMilliseconds As Long)

って行を追加しまして、

Do Until 終了条件
 Sleep 100 '100ミリ秒待機する
 DoEvents
Loop

のようにします。
    • good
    • 0

>スライドショーのプログラム


とあるので、きっとタイマーコントロールで定期的に画像を更新しているのでは?
もしその場合#1さんの発言の方がいいかも?

PublicもしくはPrivateでフラグの宣言
フラグのデフォルト=0
タイマーイベントでフラグが0の時以外は処理を抜ける。
一時停止ボタンの機能:フラグ=1
一時停止解除ボタンの機能:フラグ=0

もしさっきの推測がはずれならば、どのようにスライドショーの画面の更新が行われているかが気になりますね。
    • good
    • 0
この回答へのお礼

ご推測の通りです。説明不足ですみません。
僕のプログラムがまずいらしく、上述の方法がうまく出来ません。
それで、
一時停止ボタンの機能:Timer1.Enabled=False
一時停止解除ボタンの機能:Timer1.Enabled=True
としたら出来ました。これらのボタンを押して欲しくないときは、
Command1.Enabled=False
としています。このやり方でいいんでしょうか?

まだVisual Basicを始めたばかりなので、参考になりました。
ありがとうございます。

お礼日時:2001/10/27 09:46

#2の発言のARCに質問です。



>Sleep 100 '100ミリ秒待機する
とありますが、これは意味があるのですか?
VBの処理にロックがかかるだけで、意味がないのでは?
    • good
    • 0

Enabledの操作で充分だと思いますよ。



ちなみに先ほどの方法の処理を書くと(フラグの1と0の値が変わってますが・・・)

Private bytFlg As Byte

Private Sub cmdPause_Click()
  bytFlg = 0
End Sub

Private Sub cmdPlay_Click()
  bytFlg = 1
End Sub

Private Sub Form_Load()
  bytFlg = 0
End Sub

Private Sub Timer1_Timer()
  If bytFlg = 1 Then
    'ここに画像読み込み処理
  End If
End Sub

とするとできます。
しかし、画像の読み込みを必要としないときもタイマーが動いているので、Windowsに負荷がかかります。

だからgotkatさんの今までのEnabledの操作で充分です
    • good
    • 0
この回答へのお礼

丁寧に回答していただいてありがとうございます。

お礼日時:2001/10/27 12:40

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!