ドリル作成ツール 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 

 

 

inserted by FC2 system