これを行うことができるツールはありますか?ウェブサイトと同じように、同じ基本的な理由で?
更新 --- 私が作成しているアプリケーションに関する統計情報を収集することを意味します。
これを行うことができるツールはありますか?ウェブサイトと同じように、同じ基本的な理由で?
更新 --- 私が作成しているアプリケーションに関する統計情報を収集することを意味します。
私は過去にこのようなことをしました。
これを行うには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 つの方法は単純であり、うまく機能しますが、最善の解決策ではない可能性があります。
Windowsパフォーマンスカウンターについて話していると思います
Windows システム モニター (SYSMON) を使用して結果を確認します。
Delphi用のProf's Performance Monitoring Componentsもあります
カバレッジ分析ツールが必要ですか?