6

Ctrl+ +Ctrl+ -、およびCtrl+0を、アプリケーションのズームイン、ズームアウト、およびデフォルトのズーム (通常は 100%) アクションのショートカットとして使用するのが自然に思えるかもしれません。現在、Delphi ではCtrl++Ctrl+0をショートカットとして割り当てることができます。ただし、前者では、キーボードの主要部分のプラス記号を使用する必要があります。テンキーのプラス記号は使用できません。

Ctrlただし、 +-をショートカットとして割り当てたい場合に問題が発生します。それは単に機能しません。IDE で「Ctrl+-」を割り当てると、ShortCutプロパティに格納される値は16495. これを差し引くssCtrlと、111 が得られます。回避策は、 を代入することShortCut := 45 + ssCtrl、または同等にを代入するShortCut := Menus.ShortCut(45, [ssCtrl])ことであると思われord('-') = 45ます。しかし、それはうまくいきません。

ただし、実用的な解決策を見つけました: ShortCut := 189 + ssCtrl. KeyDown「-」キーを押してイベントを聞いたときに受け取る番号であるため、189 を選択します。

それで、なぜ私はこれに満足していないのですか?残念ながら、定数 189 はスウェーデン語キーボードでのみ有効です。私はこれについて読もうとしましたが、いつものように、MSDN のドキュメントはかなり明確ですが、Delphi がどのように処理するかを知っている人はいません。

4

3 に答える 3

6

キーコード189はVK_OEM_MINUSWindows.pasあるため、ソリューションはスウェーデン人だけのものではありません。

于 2010-08-28T23:28:14.880 に答える
1

テンキーのメニューショートカットを使用する正しい方法は、[-]の
CtrlNum +[+]です。
CtrlNum -

Num+とNum-の間にスペースがあります

于 2011-07-25T12:30:44.737 に答える
0

Ctrl+で16495を取得している理由がわかりません-。そのショートカットをアクションに追加すると、16573が表示され、メニューにCtrl+として表示され-、そのショートカットは機能します。

しかし、あなたは正しくありMenus.ShortCut(ord('-', [ssCtrl])ません。これは値16429を与え、メニューにCtrl+として表示されInsCtrl+Insはショートカットとして機能します。

おそらくこれは、Delphi 2009以降でUnicodeが追加されたため、問題になっています。

于 2010-08-28T23:20:06.457 に答える