OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

一時停止と再開

  • 困ってます
  • 質問No.157974
  • 閲覧数1667
  • ありがとう数4
  • 気になる数0
  • 回答数5
  • コメント数0

お礼率 62% (23/37)

今、Visual Basic でスライドショーのプログラムを作っています。
その中で、プログラムの一時停止(それに伴う再開)という事をしたいのですが、どのようにすればよいかわかりません。
教えて下さい。お願いします。
通報する
  • 回答数5
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.5
レベル12

ベストアンサー率 65% (276/422)

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の操作で充分です
お礼コメント
gotkat

お礼率 62% (23/37)

丁寧に回答していただいてありがとうございます。
投稿日時 - 2001-10-27 12:40:50
-PR-
-PR-

その他の回答 (全4件)

  • 回答No.1
レベル13

ベストアンサー率 26% (267/1014)

>一時停止 ボタンクリックで、 val_restart = 0 do   doevents   if val_restart = 1 then exit do end if loop >再開  ボタンクリックで  val_restart = 1 やってることわかります? (試してないので、自信なし) ...続きを読む
>一時停止
ボタンクリックで、
val_restart = 0
do
  doevents
  if val_restart = 1 then
exit do
end if
loop

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

やってることわかります?
(試してないので、自信なし)
お礼コメント
gotkat

お礼率 62% (23/37)

ありがとうございます。
さっそくやってみます。
投稿日時 - 2001-10-26 21:42:17
  • 回答No.2
レベル13

ベストアンサー率 46% (643/1383)

途中でSleepを挟んだ方がいいかも。 (Genaral) (Declarations)に Private Declare Sub Sleep Lib "KERNEL32" (ByVal dwMilliseconds As Long) って行を追加しまして、 Do Until 終了条件  Sleep 100 '100ミリ秒待機する  Do ...続きを読む
途中でSleepを挟んだ方がいいかも。

(Genaral) (Declarations)に

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

って行を追加しまして、

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

のようにします。
  • 回答No.3
レベル12

ベストアンサー率 65% (276/422)

>スライドショーのプログラム とあるので、きっとタイマーコントロールで定期的に画像を更新しているのでは? もしその場合#1さんの発言の方がいいかも? PublicもしくはPrivateでフラグの宣言 フラグのデフォルト=0 タイマーイベントでフラグが0の時以外は処理を抜ける。 一時停止ボタンの機能:フラグ=1 一時停止解除ボタンの機能:フラグ=0 もしさっきの推測がはずれなら ...続きを読む
>スライドショーのプログラム
とあるので、きっとタイマーコントロールで定期的に画像を更新しているのでは?
もしその場合#1さんの発言の方がいいかも?

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

もしさっきの推測がはずれならば、どのようにスライドショーの画面の更新が行われているかが気になりますね。
お礼コメント
gotkat

お礼率 62% (23/37)

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

まだVisual Basicを始めたばかりなので、参考になりました。
ありがとうございます。
投稿日時 - 2001-10-27 09:46:09
  • 回答No.4
レベル12

ベストアンサー率 65% (276/422)

#2の発言のARCに質問です。 >Sleep 100 '100ミリ秒待機する とありますが、これは意味があるのですか? VBの処理にロックがかかるだけで、意味がないのでは?
#2の発言のARCに質問です。

>Sleep 100 '100ミリ秒待機する
とありますが、これは意味があるのですか?
VBの処理にロックがかかるだけで、意味がないのでは?
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ