6

これを行うことができるツールはありますか?ウェブサイトと同じように、同じ基本的な理由で?

更新 --- 私が作成しているアプリケーションに関する統計情報を収集することを意味します。

4

3 に答える 3

3

私は過去にこのようなことをしました。

これを行うには2つの方法が考えられます。

アクションあり:

アクションを使用する場合、TActionList.OnExecute ハンドラにコードを配置することで、UI の使用法を簡単に追跡できます。このイベントは、個々のアクションが実行される前に発生するため、何がいつ発生したかを追跡できます。

例えば:

procedure TForm1.ActionList1Execute(Action: TBasicAction; var Handled: Boolean);
begin
   WriteToLog(TAction(TBasicAction).Caption);
end;

アクションなし:

アクションを使用しない場合は、少し難しくなりますが、不可能ではありません。ロギング コードを含む TMenuItem の子孫を持つ新しいユニットを作成する必要があります。新しいユニットは、それを使用するすべてのユニットの uses 句の MENU ユニットの後に必ず配置してください。これを機能させるには、新しい子孫を TMenuItem と呼ぶ必要があります。あなたは基本的に同じクラスを再導入していますが、機能が拡張されています。

これは、非常に単純な例を示す簡単な単元です。

unit MenuItemLogger;

interface

uses Menus;

Type
  TMenuItem = class(Menus.TMenuItem)
  public
    procedure Click; override;
  end;

implementation

uses windows;

{ TMenuItem }

procedure TMenuItem.Click;
begin
  outputdebugstring(PWideChar(self.Caption));
  inherited;
end;

end.

上記のユニットを使用するには、トレースするメニュー (TMainMenu または TPopupMenu) を含むフォーム/DataModule の uses 句の最後のユニットとして配置します。特定のユニットをトレースしたくない場合は、含めないでください。

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ActnList, Menus, MenuItemLogger;

これら 2 つの方法は単純であり、うまく機能しますが、最善の解決策ではない可能性があります。

于 2009-07-13T15:12:27.233 に答える
0

Windowsパフォーマンスカウンターについて話していると思います

このリンクを見てください

Windows システム モニター (SYSMON) を使用して結果を確認します。

このリンクを見てください

Delphi用のProf's Performance Monitoring Componentsもあります

于 2009-07-12T19:30:48.103 に答える
-1

カバレッジ分析ツールが必要ですか?

于 2009-07-13T12:57:13.300 に答える