ログファイルの作成について


あこ  2005-01-13 15:13:54  No: 118873  IP: [192.*.*.*]

お世話になります。
環境はVB6.0になります。

画面が50近くあるのですが・・
そのボタンを取得して  実行履歴のようなログファイルを作成したいのですが
フォーム名とマウスで押下されたボタンの取得がうまく取得できなくて
困っております。
トグルボタンとコマンドボタンのみ取得したいのですが・・・
今のところ  うまくいっておりません。
なにか  いい方法がありましたら  お教えください。
よろしくお願いいたします。

それから  私事で申し訳ございませんが
ログの作成が初めてなのですが・・日付以外にも
書き出しておいたほうが後々  バグ対策で役に立つようなアイテムなど
ありましたら・・あわせてよろしくお願いいたします。

編集 削除
INA  2005-01-13 17:23:31  No: 118874  IP: [192.*.*.*]

クラスモジュールを使ってトグルボタンとコマンドボタンのClickイベントで
ログを出力する処理をすれば、コードをまとめることが出来ると思いますけど・・・


>今のところ  うまくいっておりません。
どのような構想(方法)で試しているのでしょうか?

編集 削除
あこ  2005-01-14 11:10:29  No: 118875  IP: [192.*.*.*]

今のところ試している方法としては

フォームのマウスイベント(Form_MouseDown)によって
オブジェクトのタイプを識別して  名称などを取得しようとしております。

画面もたくさんあり  画面上の釦も配列になっていない状態での
入れ込みなので・・
フォームのイベントでなんとかれきればと
思って作っているのですが・・・。

編集 削除
Say  2005-01-14 12:44:42  No: 118876  IP: [192.*.*.*]

> トグルボタンとコマンドボタンのみ取得したいのですが・・・

トグルボタンって、Forms2.0 Object Library でしょうか?
もしそうなら、Forms2.0はVBでの動作を保証されてませんし、再配布もできませんので、
CheckBoxかOptionButtonのStyleを変更して代用することをおすすめします。

> フォームのマウスイベント(Form_MouseDown)によって
> オブジェクトのタイプを識別して  名称などを取得しようとしております。
キーイベントと異なり、マウスイベントはFormで一括して受けるようにできていません。
面倒に見えてもINAさんのおっしゃるように各Clickイベントに記述するほうが早道でしょう。

それを踏まえた上で技術的な話をするなら、
サブクラス化、またはローカルフックすることで
イベントを1つの関数で一括して受けることは可能です。

興味があるなら調べてみてください。(ここの過去ログでも何度か書いたことがあります)
不用意に用いるべきではありませんから、おすすめはしません。

SpyWorksのようなサブクラス化コントロールも存在しますので、探してみるのも手かも。

編集 削除
INA  2005-01-14 13:38:53  No: 118877  IP: [192.*.*.*]

>Forms2.0はVBでの動作を保証されてませんし、再配布もできません
知りませんでした。
EXCELでは標準で付いているので、てっきりVBでも良いのかと思ってました。 



>イベントを1つの関数で一括して受けることは可能です。
あまり使ったことがないので、正しいのか分からないのですが・・・


Dim myBtn As New Collection

Private Sub Form_Load()
Dim Ctrl As Control
Dim myHandler As New Class1
   
    For Each Ctrl In Controls
        If InStr(Ctrl.Name, "Command") > 0 Then
            myHandler.myButtonClass = Ctrl
            myBtn.Add myHandler
            Set myHandler = Nothing
        End If
    Next Ctrl
End Sub

−−−−−−−

Private WithEvents myButton As CommandButton

Property Let myButtonClass(ByVal Button As CommandButton)
    Set myButton = Button
End Property

Private Sub myButton_Click()
    Debug.Print Now & "," & myButton.Name
End Sub

編集 削除
INA  2005-01-14 14:44:51  No: 118878  IP: [192.*.*.*]

フォーム名が抜けてました。

Debug.Print Now & "," & myButton.Name & " " & myButton.Parent.Name

編集 削除