チアダンス きょうつうへんすうこうぞうたいせんげん 共通の変数や構造体を宣言する せんたくひょうじ 1. ソリューションエクスプローラで CheerDance.vb を選択し コードの表示をクリックする 2. 次のコードが表示されるので 1の所に 下の囲いのコードを入力する Imports System.IO Public Class frmmain 1 ここに入力する! End Class Private Structure Choreography Dim X As Integer Dim Y As Integer Dim Tim As Integer End Structure Private Bm As Bitmap Private Ga, Gl As Graphics Private Bcolor As Color = Color.Cyan がぞうよこえかじゅんび 画像を読み込み 絵を描く準備をする 1. デザイン画面で フォーム 2. 次のコードが表示されるので 2の所に 下の囲いのコードを入力する Private Sub frmmain_load(byval sender As ym System.EventArgs) Handles MyBase.Load 2 ここに入力する! -1-
がぞうよみこみの読込 ' 画像 Dim P As String = Application.StartupPath If Not P.EndsWith(" ") Then P &= " " Bm = New Bitmap(P & "CheerDance.png") せいせい ' Graphics オブジェクトの生成 With picact.image = New Bitmap(.Width,.Height) Ga = Graphics.FromImage(.Image) End With Ga.Clear(Bcolor) With piclist.image = New Bitmap(.Width,.Height) Gl = Graphics.FromImage(.Image) End With Gl.Clear(Bcolor) Gl.DrawImage(Bm, New Rectangle(0, 0, 624, 172), _ New Rectangle(0, 0, 1640, 454), GraphicsUnit.Pixel) しゅとく マウス入力を取得する せんたく 1. デザイン画面で piclist を選択し イベント一覧で MouseUp つぎひょうじところしたかこなか 2. 次のコードが表示されるので 3の所に 下の囲いの中のコードを入力する Private Sub piclist_mouseup (ByVal sender seeventargs) Handles piclist.mouseup 3 ここに入力する! Dim X As Integer = e.x 78 Dim Y As Integer = e.y 86 Dim N As Integer = Y * 8 + X If txtchoreography.text = "" Then txtchoreography.text &= (N.ToString("X") & barinterval.value.tostring( )) Else txtchoreography.text &= ("," & N.ToString("X") & barinterval.value.tostring( )) Ga.Clear(Bcolor) Ga.DrawImage(Bm, New Rectangle(0, 0, 205, 227), _ New Rectangle(X * 205, Y * 227, 205, 227), GraphicsUnit.Pixel) picact.refresh( ) -2-
へんかしゅとく トラックバーの変化を取得する せんたく 1. デザイン画面で barinterval を選択し イベント一覧で ValueChanged つぎひょうじところしたかこなか 2. 次のコードが表示されるので 4の所に 下の囲いの中のコードを入力する Private Sub barinterval_valuechanged(byval senrgs) Handles barinterval_valuechanged 4 ここに入力する! txtinterval.text = barinterval.value.tostring( ) へんかしゅとく テキストボックスの変化を取得する 1. デザイン画面で テキストボックス 2. 次のコードが表示されるので 5の所に 下の囲いのコードを入力する Private Sub txtinterval_textchanged (ByVal sendntargs) Handles txtinterval_textchanged 5 ここに入力する! Dim N As Integer If Not Integer.TryParse(txtInterval.Text, N) Then MessageBox.Show("Wrong Value!") txtinterval.text = "300" Else If N >= 50 AndAlso N <= 1000 Then barinterval.value = N どうさかくにんおこな 動作の確認を行う 2. 次のコードが表示されるので 6の所に 下の囲いのコードを入力する Private Sub btntest_click (ByVal sender As Syste.nttemEventArgs) Handles btntest_click 6 ここに入力する! Dim S As String = txtchoreography.text -3-
If S = "" Then Exit Sub Dim D() As String = S.Split(",") Dim A(D.Length - 1) As Choreography Dim N As Integer For I As Integer = 0 To (D.Length - 1) N = System.Convert.ToInt32(D(I).Substring(0, 1), 16) A(I).X = (N Mod 8) * 205 A(I).Y = (N 8) * 227 A(I).Tim = System.Convert.ToInt32(D(I).Substring(1)) Dim R As Rectangle = New Rectangle(0, 0, 205, 227) For I As Integer = 0 To (A.Length - 1) Ga.Clear(Bcolor) Ga.DrawImage(Bm, R, New Rectangle(A(I).X, A(I).Y, 205, 227), GraphicsUnit.Pixel) picact.refresh() System.Threading.Thread.Sleep(A(I).Tim) えんぎほぞん 演技データを保存する 2. 次のコードが表示されるので 7の所に 下の囲いのコードを入力する Private Sub btnsave_click (ByVal sender As Syste.nttemEventArgs) Handles btnsave_click 7 ここに入力する! Dim S As String = txtchoreography.text If S = "" Then Exit Sub If dlgsave.showdialog( ) = Windows.Forms.DialogResult.OK Then Dim F As String = dlgsave.filename Using Sw As StreamWriter = _ New StreamWriter(F, False, System.Text.Encoding.Default) Sw.Write(S) Sw.Close( ) End Using MessageBox.Show("Saved!") えんぎよこ 演技データを読み込む -4-
2. 次のコードが表示されるので 8の所に 下の囲いのコードを入力する Private Sub btnload_click (ByVal sender As Syste.nttemEventArgs) Handles btnload_click 8 ここに入力する! If dlgopen.showdialog( ) = Windows.Forms.DialogResult.OK Then Dim F As String = dlgopen.filename Dim S As String = "" Using Sr As StreamReader = New StreamReader(F, System.Text.Encoding.Default) S = Sr.ReadToEnd( ) Sr.Close( ) End Using txtchoreography.text = S ひろう チアダンスを披露する 2. 次のコードが表示されるので 9の所に 下の囲いのコードを入力する Private Sub btnplay_click (ByVal sender As Syste.nttemEventArgs) Handles btnplay_click 9 ここに入力する! Dim Frm As frmdance = New frmdance( ) Frm.Bcolor = Bcolor Frm.ShowDialog( ) じてんまなかぎょうなみせんひょうじつぎだんかいきこの時点で 真ん中の行に波線が表示されるが 次の段階で消える ついかきょうつうへんすうこうぞうたいせんげん 追加フォームの共通の変数や構造体を宣言する せんたくひょうじ 1. ソリューションエクスプローラで CheerStage.vb を選択し コードの表示をクリックする 2. 次のコードが表示されるので 10の所に 下の囲いのコードを入力する -5-
Imports System.IO Public Class frmdance 10 ここに入力する! End Class Private Structure Choreography Dim X As Integer Dim Y As Integer Dim Tim As Integer End Structure Private Bm As Bitmap Private Gr As Graphics Friend Bcolor As Color = Color.Cyan がぞうよこえかじゅんび 画像を読み込み 絵を描く準備をする 1. デザイン画面で フォーム 2. 次のコードが表示されるので 11の所に 下の囲いのコードを入力する Private Sub frmdance_load(byval sender As m System.EventArgs) Handles MyBase.Load 11 ここに入力する! ' 画像の読込 Dim P As String = Application.StartupPath If Not P.EndsWith(" ") Then P &= " " Bm = New Bitmap(P & "CheerDance.png") ' Graphics オブジェクトの生成 With picdisp.image = New Bitmap(.Width,.Height) Gr = Graphics.FromImage(.Image) End With Gr.Clear(Bcolor) ひろう チアダンスを披露する 2. 次のコードが表示されるので 12の所に 下の囲いのコードを入力する -6-
Private Sub btnplay_click (ByVal sender As Syste.nttemEventArgs) Handles btnplay_click 12 ここに入力する! Dim S As String = frmmain.txtchoreography.text If S = "" Then Exit Sub Dim D( ) As String = S.Split(",") Dim A(D.Length - 1) As Choreography Dim N As Integer For I As Integer = 0 To (D.Length - 1) N = System.Convert.ToInt32(D(I).Substring(0, 1), 16) A(I).X = (N Mod 8) * 205 A(I).Y = (N 8) * 227 A(I).Tim = System.Convert.ToInt32(D(I).Substring(1)) Dim R As Rectangle Dim P As Integer = 0 For I As Integer = 0 To (A.Length - 1) Gr.Clear(Bcolor) For J As Integer = 0 To 5 R = New Rectangle((J Mod 3) * 205 + 100 + P, (J 3) * 227 + (J 3 + 1) * 10, _ 205, 227) Gr.DrawImage(Bm, R, New Rectangle(A(I).X, A(I).Y, 205, 227), GraphicsUnit.Pixel) picdisp.refresh( ) System.Threading.Thread.Sleep(A(I).Tim) えんぎよこ 演技データを読み込む 2. 次のコードが表示されるので 13の所に 下の囲いのコードを入力する Private Sub btnread_click (ByVal sender As Syste.nttemEventArgs) Handles btnload_click 13 ここに入力する! If dlgopen.showdialog( ) = Windows.Forms.DialogResult.OK Then Dim F As String = dlgopen.filename Dim S As String = "" Using Sr As StreamReader = New StreamReader(F, System.Text.Encoding.Default) -7-
S = Sr.ReadToEnd( ) Sr.Close( ) End Using frmmain.txtchoreography.text = S -8-