/// 実習E9 コントロール(ピクチャボックス) プログラミング実習
 back next 

プロジェクト名  実習E9画像の切換え2

説明

 8枚の画像をタイマーで切り換える。

デザイン

実習E9
 
画像データ (32×32ピクセル)
moon01.gif  moon02.gif
moon03.gif  moon04.gif
moon05.gif  moon06.gif
moon07.gif  moon08.gif
フォームのプロパティ
 Font.Size = 9  Size = 260, 120

ピクチャボックス
 Size = 50, 50
 SizeMode = StretchImage
 Image = moon01.gif 〜 moon08.gif (8枚)

タイマー(Timer1)のプロパティ(オブジェクトは、フォーム上に表示されない。)
 Enabled = Treu、 Interval = 250 (0.25秒)

コード(プログラム)    [終了ボタン]のメソッドは省略しています。 

Public Class Form1
  Dim moon(8) As Image    '画像用の配列 moon(1)〜moon(8)
                        '(どのメソッドからも参照できる変数)
  Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    Static flag As Integer = 1
    picGazou.Image = moon(flag)   ←※1
    flag = flag +  @ 
    If flag = 9 Then   ←※2
      flag =  A 
    End If
  End Sub

  Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load    '起動時に一度だけ処理される。
    Dim n As Integer
    For n = 1 To  B        '配列に8枚の画像を格納する。  ←※3
      moon( C  ) = My.Resources.ResourceManager.GetObject("moon0" & n.ToString)
    Next
  End Sub
End Class

解答欄(英数字は半角で入力すること。余分な空白は入れないこと)
  @   A   B   C
   解答を入力し、[解答チェック]ボタンをクリックする。正解は   、不正解は   で表示される。

キーワード

 My.Resources.ResourceManager.GetObject("moon0" & n.ToString)
 使用するリソースの名前(moon01など)を文字列で指定できる。

解説

※1 配列moon(1)〜moon(8)に画像が格納されているので、変数flagの値を1〜8まで順に変えながら、picGazou.Imageに代入している。
※2 直前のflag=flag+1でflagが1ずつ増えるので、flagが9になったとき、1に戻す。これで、flagは1〜8まで順に変わる。
※3 キーワードの説明にあるように名前で指定できるのでForの繰返しを利用している。Forが利用できるようにリソース名(ファイル名)は連番になるようにしている。
Forを利用しなければ次のような書き方となる。
moon(1) = My.Resources.moon01
moon(2) = My.Resources.moon02
  ………
moon(7) = My.Resources.moon07
moon(8) = My.Resources.moon08
 画像は0.25秒ごとに変わるので、1秒間に4枚の画像が表示されることになる。アニメーションにみえるようにするため、最低、この程度のスピードが必要である。

テスト

 お月さんの画像が切り替わる。


 back next 
/// 実習E9 コントロール(ピクチャボックス) Copyright©2014 Hiroshi Masuda 

 

 

inserted by FC2 system