tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
[ツリー表示へ]  [ワード検索]  [Home]

タイトル 標準モジュールとクラスモジュール
投稿日: 2011/04/08(Fri) 15:10
投稿者レイ
初めて投稿させて頂きます。
急ぎの内容では御座いませんのでお時間がある際に御回答いただければと思います。
なお、間違い、勘違いなどありましたらご指摘頂けると幸いです。

現在、組み込み製品の試験プログラムを作成しており、
その一部としてメッセージを表示するプログラムを作成しております。
・メッセージ内容一覧
    ・プログラムの終了問合せ
    ・エラーメッセージ
    ・注意メッセージ
    ・問合せメッセージ
    ・その他メッセージ

これらのメッセージを表示する方法として以下の2種類を検討しております。
1.標準モジュールにプロージャを記載。
2.クラスモジュールに記載。

「オブジェクト指向」の観点から、どちらの方法で実装するのが良いのでしょうか?
また、他の方法が良いなどありましたらご教示頂けますようお願い致します。

使用環境
 WindowsXP SP3
 VB6.0
プログラマ暦
 4年

実際に使用していますコードを以下に記載します。
なお、注意、問合せについてはエラーとほぼ同様のため省略させて頂きました。

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
1.標準モジュール版

'----------プログラム終了メッセージ----------
Function ProgramEnd() As Integer
Dim Msg1 As String                      'メッセージタイトル
Dim Msg2 As String                      'メッセージ内容
    Msg1 = "プログラムの終了"
    Msg2 = "終了しますか?"
    ProgramEnd = MsgBox(Msg2, vbQuestion Or vbOKCancel, Msg1)
End Function

'----------エラーメッセージ----------
Sub ErrorMessage()
Dim Msg1 As String                      'メッセージタイトル
Dim Msg2 As String                      'メッセージ内容
    Msg1 = "Error"
    Msg2 = "エラーが発生しました。" & vbCrLf & "内容:" & Err.Description
    MsgBox Msg2, vbCritical, Msg1
End Sub

'----------その他メッセージ----------
Sub OtherMessage(ByVal MsgData1 As String, ByVal MsgData2 As String, ByVal MsgType As Integer)
    MsgBox MsgData2, MsgType, MsgData1
End Sub

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
2.クラスモジュール版

'メッセージ構造体
Private Type Msg
    Prompt  As String
    Title   As String
    Buttons As Long
End Type

Private ProEndMsg As Msg  'プログラム終了メッセージ
Private ErrMsg    As Msg  'エラーメッセージ
Private ExcMsg    As Msg  '注意メッセージ
Private QueMsg    As Msg  '問合せメッセージ

'----------クラス初期化----------
Private Sub Class_Initialize()

    ProEndMsg.Prompt = "終了しますか?"                             'プログラム終了メッセージ:内容
    ProEndMsg.Title = "プログラムの終了"                               'プログラム終了メッセージ:タイトル
    ProEndMsg.Buttons = vbQuestion Or vbOKCancel                    'プログラム終了メッセージ:ボタン、アイコン
    ErrMsg.Prompt = "エラーが発生しました。" & vbCrLf & "内容:"    'エラーメッセージ:タイトル
    ErrMsg.Title = "Error"                                          'エラーメッセージ:タイトル
    ErrMsg.Buttons = vbCritical                                     'エラーメッセージ:アイコン

End Sub

'----------プログラム終了メッセージ----------
Function ProgramEnd() As Integer
    ProgramEnd = MsgBox(ProEndMsg.Prompt, ProEndMsg.Buttons, ProEndMsg.Title)
End Function

'----------エラーメッセージ----------
Sub ErrorMessage(ByVal ErrDescription As String)
    MsgBox ErrMsg.Prompt & ErrDescription, ErrMsg.Buttons, ErrMsg.Title
End Sub

'----------その他メッセージ----------
Sub OtherMessage(ByVal MsgPrompt As String, ByVal MsgTitle As String, Optional ByVal Buttons As Long)
    MsgBox MsgPrompt, Buttons, MsgTitle
End Sub

※本来であれば以下のようにすべきだと思うのですが、VB6.0では継承が出来ないので
クラスモジュールにメソッドとして実装しています。
    メッセージクラス------------スーパークラス
        プログラム終了------サブクラス
        エラー--------------サブクラス
        注意----------------サブクラス
        問合せ--------------サブクラス
        その他--------------サブクラス

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。