Thread View: fj.lang.visualbasic
2 messages
2 total messages
Started by TOKASHIKI MASATO
Fri, 13 Mar 1998 00:00
質問: スライドショー作成
Author: TOKASHIKI MASATO
Date: Fri, 13 Mar 1998 00:00
Date: Fri, 13 Mar 1998 00:00
21 lines
1219 bytes
1219 bytes
はじめまして、トカシキと申します。 約400枚の画像を、ランダムに、なおかつ同じ画像が2度とでないような形のプロ グラムが 書きたいのですが、どうしたらいいのですか? swapで一旦ランダムを作り、select caseで画像ごとにファイルをピクチャーボック ス(又はイメージ) に読み込むような事ができると聞いた事があるんですが、なにせ初心者なものでチン プンカンプン です。あと、画像の表示がなるべく早くなければいけないのですが、そちらの方もど うしたら良いのか 分かりません。 どなたか、初心者に分かるように噛み砕いて解説お願いします。 Email: tmasato@lares.dti.ne.jp
Re: 質問: スライドショー作成
Author: 市崎 大介
Date: Sat, 14 Mar 1998 00:00
Date: Sat, 14 Mar 1998 00:00
74 lines
2780 bytes
2780 bytes
Dim FileName(400) As String
Dim intCounter As Integer
Dim tmpFileName As String
Dim intRnd1 As Integer
Dim intRnd2 As Integer
For intCounter = 1 To 400
'ここで画像ファイル名の一覧を読み込む
Next
'ランダムシード(種)を変更する
Randomize
For intCounter = 1 To 200 ' 200回もシャッフルすれば十分?
'1から400までの乱数を2つ求める
intRnd1 = CInt(Rnd * 400) + 1
intRnd2 = CInt(Rnd * 400) + 1
'Swap関数がないので入れ替えは以下のようにする
tmpFileName = FileName(intRnd1)
FileName(intRnd2) = FileName(intRnd1)
FileName(intRnd1) = tmpFileName
Next
あとは表示するだけ
たとえば、Form1上のPicture1に画像を表示してさらにクリックされたら
画像を次に進めるには
Form1の(General) Declareセクションで、
Private intSlide As Integer
と宣言し、Form_Loadイベントで
intSlide = 1
とし、Picture1_Clickイベントで
intSlide = intSlide + 1
にして、その値をもとに
Picture1.LoadPicture(FileName(intSlide))
でよいのでは?
いろいろ解決方法はあると思いますが。
この方法だと、ファイルの読み込みに時間がかかります。
イメージ自体が400枚もあるので現実的ではありませんが、
リソースにぶち込むとか、PictureClipを使うと、速くなります。
では。
TOKASHIKI MASATO wrote in message <6e96q1$lua$1@news2.dti.ne.jp>...
>はじめまして、トカシキと申します。
>
>
>約400枚の画像を、ランダムに、なおかつ同じ画像が2度とでないような形のプ
ロ
>グラムが
>書きたいのですが、どうしたらいいのですか?
>
>swapで一旦ランダムを作り、select caseで画像ごとにファイルをピクチャーボック
>ス(又はイメージ)
>に読み込むような事ができると聞いた事があるんですが、なにせ初心者なものでチ
ン
>プンカンプン
>です。あと、画像の表示がなるべく早くなければいけないのですが、そちらの方も
ど
>うしたら良いのか
>分かりません。
>
>どなたか、初心者に分かるように噛み砕いて解説お願いします。
>
>
>
>Email: tmasato@lares.dti.ne.jp
>
>
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads