TActionMainMenuBar にヒントを表示するのに苦労しています。デルファイ XE2。
実行時にメニューを作成しています。カテゴリ、サブアイテムを追加し、メニューをクリアすると、すべてうまくいきます。メニュー項目のクリックは適切に機能します (今のところ、アクション項目タグで ShowMessage を実行するだけですが、問題ありません)。
これは、新しいメニュー項目を追加するコードです:
function TActionF.NewAction(AParent: TActionClientItem; Caption: String; aTag : integer; ExecuteAction: TNotifyEvent):TActionClientItem;
var
newActionClient : TActionClientItem;
AnewAction : TAction;
begin
newActionClient := TActionClientItem(AParent.Items.insert(AParent.Items.Count));
newActionClient.Caption := Caption; //??
newActionClient.UsageCount := -1; // turn of menu priority stuff for now
AnewAction := TAction.Create(Self);
AnewAction.Tag := aTag;
AnewAction.ImageIndex := -1;
AnewAction.Caption := Caption;
AnewAction.Hint := Caption + 'Action Tag = ' + IntToStr(aTag);
AnewAction.OnHint := acnDoHint; // fixed, could be parameter, but onHint is never called !!??
AnewAction.OnExecute := ExecuteAction; // passed as parameter
newActionClient.Action := AnewAction;
Result := newActionClient;
end;
アクションのヒントを設定しています。OnHint の割り当ても試しましたが、OnHint が呼び出されることはありません。メニューをブラウズするときにそのヒントを取得できません。
私は ShowHint を True に設定し、それを行う場所が見えるところならどこでも使用しています。
問題は、何を試してもメニューのヒントが表示されないことです。私がそれを手に入れることができれば、自分で表示することができます(プログラムが表示しない場合)。OnHint が呼び出されることはありません。
私のメニュー プログラム (Delphi XE2) の完全なソースを投稿しました。小さな例をできる限り絞り込みました。プログラムを見たい人がいる場合は、公開の DropBox に投稿しました。