ドリル作成ツール VB6 |
基数変換ドリルの作成
ここからは、基数変換ドリルを作成していく。共通で利用できる部分についてはそのまま利用できるので、ここでは固有の処理について説明する。
5.初期化の処理
共通の初期化処理以外に、基数変換ドリルに合わせた初期化が必要である。初期化のプログラムはForm_Loadプロシージャに作る。
定数などを設定している。フォームの(General), (Declarations)にプログラムする。
Option Explicit Const MONMAX = 50 '最大出題数 Const SYURUI = 6 '問題の種類 '出題数のtxtMonSuu,vsrMonSuuオブジェクトのIndex値を合わせる。 Const M2TO10 = 0 ' 2進数 → 10進数 Const M10TO2 = 1 '10進数 → 2進数 Const M16TO10 = 2 '16進数 → 10進数 Const M10TO16 = 3 '10進数 → 16進数 Const M2TO16 = 4 ' 2進数 → 16進数 Const M16TO2 = 5 '16進数 → 2進数
最大出題数は一つの種類当たりの最大数である。例えば、2進数→10進数変換の問題が50問ということである。
問題の種類はフォームにも用意したように、ここでは6種類あるので6を定義している。
残りの定義は、プログラム中で問題の種類を番号だけで判断するのは間違いやすいので、わかりやすく略語にしている。プログラムの可読性(読みやすさ)、保守性(メンテナンスのしやすさ)を高めるためである。
Private Sub Form_Load() '初期設定 Dim n As Integer InitComm '※1 共通の初期化 InitUsage '※2 使用法初期化 For n = 0 To SYURUI - 1 '※3 txtMonSuu(n).Text = "0" vsrMonSuu(n).Value = 0 vsrMonSuu(n).min = MONMAX vsrMonSuu(n).max = 0 Next n txtMondai.Left = TabStrip1.ClientLeft '※4 タブ内テキストボックス設定 txtMondai.Top = TabStrip1.ClientTop txtMondai.Width = TabStrip1.ClientWidth txtMondai.Height = TabStrip1.ClientHeight Me.Show 'フォーム表示 txtMonSuu(0).SetFocus 'フォーカス設定 End Sub
※1 共通の初期化処理であるInitCommプロシージャを呼び出している。
※2 使用法の説明文を設定するInitUsageプロシージャを呼び出している。このプログラムは、後で示す。
※3 出題数入力用のオブジェクトを初期化している。
※4 タブストリップの上にテキストボックスを配置している。このテキストボックスをタブストリップの大きさに合わせている。
次に、InitUsageプロシージャを示す。
Private Sub InitUsage() USAGE = "使い方" & vbCrLf & vbCrLf USAGE = USAGE & "(1) 「1バイト」か「2バイト」か選択できます。実数を選択した" & vbCrLf USAGE = USAGE & " ときは桁数を設定します。。" & vbCrLf USAGE = USAGE & "(2) 作成する基数変換の出題数を入力します。" & vbCrLf USAGE = USAGE & " 入力欄にキーボードから入力するか、横のアップダウンカウン" & vbCrLf USAGE = USAGE & " タをクリックします。" & vbCrLf USAGE = USAGE & " 出題数が0の問題は作成されません。" & vbCrLf USAGE = USAGE & "(3) [作成開始]のボタンをクリックすると問題が表示されます。" & vbCrLf USAGE = USAGE & " HTML化するには下の[HTML]のボタンをクリックします。" & vbCrLf USAGE = USAGE & "(4) 保存するにはファイル名を入力して、[保存]のボタ" & vbCrLf USAGE = USAGE & " ンをクリックします。" & vbCrLf USAGE = USAGE & " 表示されている問題データが保存されます。" & vbCrLf End Sub
説明文をグローバル変数USAGEに設定している。vbCrLfはVBで使える定数で改行を表す文字コードである。
説明文はテーマーによって変える必要がある。
グローバル変数USAGEは説明表示用のウィンドウ(ダイアログ)dlgHelpで使用される。
整数・実数の切り替え
フォームの左上にある「1バイト」、「2ばいと」、「実数」のオプションボタン、チェックボックス、テキストボックスの処理をプログラムする。
Private Sub chkFloat_Click() '整数、実数の切り替え If chkFloat.Value = 1 Then '実数値で出題 optBytes(0).Enabled = False optBytes(0).Value = False optBytes(1).Enabled = False optBytes(1).Value = False lblSyosu.Enabled = True txtSyosu.Enabled = True Else optBytes(0).Enabled = True optBytes(0).Value = True optBytes(1).Enabled = True lblSyosu.Enabled = False txtSyosu.Enabled = False End If End Sub Private Sub txtSyosu_Change() If Val(txtSyosu.Text) > 8 Then MsgBox "最大8けたまでです。", vbOKOnly, App.Title txtSyosu.Text = "8" End If End Sub
chkFloat_Clickプロシージャでは、「実数」のオプションボタンのチェックの有無で表示・非表示の設定をしている。
txtSyosu_Changeプロシージャでは、小数のけた数を監視している。最大8けたとしている。
Copyright © 2003 Hiroshi Masuda |