2

Delphi 2007 プログラムでは、TAction リスト内のアクションを参照する TMainMenu を使用しています。すべてのメイン キャプションのホットキーの前にアンパサンドを付けました。

&File | &Edit | Ev&aluate | ...

デザイン ビューでは、これらのホットキーには予想どおり下線が引かれていますが、プログラムを起動すると下線が引かれなくなりましたが、それでも機能します。これとは対照的に、すべてのサブメニュー アイコンに対して

  &File
  &New ...
  &Open ...

下線は期待どおりに表示されます。

Windows pisplay のプロパティ オプション [Alt キーを押すまで、下線付きの文字またはキーボード ナビゲーションを非表示にする] を認識しています。そしてそれを無効にしました。Delphi IDE を含む他のすべてのプログラムでは、これは正常に機能します。

新しい VCL アプリケーションを作成し、TMainMenu といくつかのメニュー項目を追加するだけで、期待どおりに動作します。

これには本当に困惑しました。

変更しなければならない TMainMenu コンポーネントまたはアプリケーション オプションのプロパティはありますか? 「ランタイムテーマを有効にする」プロジェクトオプションが何らかの理由でグレー表示されていますが、それが問題でしょうか? はいの場合、これは何が原因ですか?

4

5 に答える 5

2

これは Delphi の問題ではない可能性があります。WinXPのIE8でこれを試しました。私のマシンでは、表示プロパティが Alt キーを要求するように設定されているため、下線が期待どおりに機能します。ただし、チェックボックスをオフにすると、下線はメインメニュー項目に表示され(Altキーを使用した場合でも)、ファイル、編集、表示などのサブメニューに常に表示されます(説明したように)....... MicrosoftがDelphiでIE8を書いていない限り:-)

于 2009-08-13T10:05:43.477 に答える
1

この問題を解決する最も簡単な方法は、TMainMenu の代わりに jvcl の TJvMainMenu を使用することです。現在のバージョン 3.38 を試してみましたが、以前のバージョンでは問題が修正されている可能性があります。とにかくjvclを使用していたので、プログラムのサイズはあまり増えません。jvcl は巨大なライブラリです。

于 2009-10-12T19:13:26.187 に答える
1

昨年同じ質問をしたところ、いくつかの優れた回答がありました: メニュー アクセラレータ キーが Delphi 2009 に表示されない

結論として、これは Delphi のバグのようであり、エンバカデロ ( http://qc.embarcadero.com/wc/qcmain.aspx?d=68816 ) に報告しました。

ただし、彼らはそれに対する解決策を持っていないため、他の人 (おそらくあなた) も文句を言わない限り、対処されるとは思いません。

私の質問に対するステップの回答は、Delphi フォーラムで報告されたおそらく関連するバグに言及しています 。ALT キーを押すと、Vista および XP の Themes の下にコントロールが表示されなくなります。これは「解決済み」としてマークされ、コメントにいくつかの可能な修正がリストされています。私はこれらを経験する機会がありませんでした。


ところで、昨年その質問をしたので、Vista の新しいコンピューターを手に入れました。Vista のコンピューターの簡単操作センターの設定: [キーボード ショートカットとアクセス キーに下線を引く] が設定されている場合でも、同じ問題が発生します。そのため、Delphi のバグはまだ存在しています。

デフォルトでこれがチェックされていないことに非常に驚きました。Vista では、アクセラレータ キーを使用したことがないという前提で、見た目がすっきりしたメニューを望んでいると思います。

于 2009-08-14T00:58:29.653 に答える
0

MainMenu で OwnerDraw を true に設定していませんか?

于 2009-08-13T17:28:16.800 に答える