• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:画像をブランクつきでランダムに表示する方法が分かりません。)

VB6.0でランダムに表示するブランクつき画像のプログラムの作成方法

このQ&Aのポイント
  • VB6.0を使用して、ランダムにブランクつきの画像を表示するプログラムを作成したいです。写真は8枚で、各写真を2秒間表示し、1.5秒間のブランクを挿入します。
  • 現在のコードでは、8回のループでランダムな画像を表示しています。ただし、ブランク(非表示)の処理が正しくなく、改良が必要です。
  • Randomize関数を使用して、画像のランダム表示とブランクの挿入を正しく実装する方法を教えてください。

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

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

『ランダムに8枚』というのが 1) 8枚すべてを表示したい 2) 重複があってもかまわないので8回表示したい のどちらでしょう 1) ならば 0-7までの数値を代入した配列をシャッフルして この配列を元にファイル名を決定すればいいでしょう 2)ならば 単にINT(Rnd()*8) でファイル名の決定をすればいいように思います Form クラスの変数として dim nIndex(7) as Byte, sName(7) as String FormLoadイベントで dim n as Integer, m as Integer, w as integer for n = 0 to 7   nIndex(n) = n   sName(n) = "C:\AAA" & n & ".jpg" next for n = 0 to 7   m = rnd()* 8   w = nIndex( m )   nIndex( m ) = nIndex( n )   nIndex( n ) = w next といった具合に下準備 Private Sub Command1_Click()   dim n as Integer   Command1.Visible = False   Picture1.Visible = False   for n = 0 to 7     ' 1) の場合     PresentStimulus( sName( nIndex(n) ) )     ' 2) の場合     ' PresentStimulus( sName( Int(Rnd()*8) ) )   Next End Sub Private Sub PresentStimulus(sFileName)  Picture1.Picture = LoadPicture(sFileName)  Picture1.Visible = True  nowtime = timeGetTime() 'milliseconds from windows startup  Do   DoEvents  Loop Until timeGetTime() - nowtime > 2000  Picture1.Visible = False  Do   DoEvents  Loop Until timeGetTime() - nowtime > 1500 End Sub といった具合で ・・・

kaerukosan
質問者

お礼

分かりづらい説明ですみません。私の場合『8枚全てを表示したい』という1)の方です。とても分かりやすい回答をありがとうございます!!授業で本当に少ししかかじっていない私には難しく、あきらめていたのですが、redfox63さんのおかげでどうにかまた頑張れそうです!!ありがとうございました!!

関連するQ&A