🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: fj.lang.visualbasic
2 messages
2 total messages Started by TOKASHIKI MASATO Fri, 13 Mar 1998 00:00
質問: スライドショー作成
#394
Author: TOKASHIKI MASATO
Date: Fri, 13 Mar 1998 00:00
21 lines
1219 bytes
はじめまして、トカシキと申します。


約400枚の画像を、ランダムに、なおかつ同じ画像が2度とでないような形のプロ
グラムが
書きたいのですが、どうしたらいいのですか?

swapで一旦ランダムを作り、select caseで画像ごとにファイルをピクチャーボック
ス(又はイメージ)
に読み込むような事ができると聞いた事があるんですが、なにせ初心者なものでチン
プンカンプン
です。あと、画像の表示がなるべく早くなければいけないのですが、そちらの方もど
うしたら良いのか
分かりません。

どなたか、初心者に分かるように噛み砕いて解説お願いします。



Email: tmasato@lares.dti.ne.jp
Re: 質問: スライドショー作成
#404
Author: 市崎 大介
Date: Sat, 14 Mar 1998 00:00
74 lines
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