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


あこ  2005-01-14 00:13:54  No: 118873

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

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

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


INA  2005-01-14 02:23:31  No: 118874

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

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


あこ  2005-01-14 20:10:29  No: 118875

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

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

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


Say  2005-01-14 21:44:42  No: 118876

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

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

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

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

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

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


INA  2005-01-14 22:38:53  No: 118877

>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 23:44:51  No: 118878

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

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加