質問の通りなんですが、メインメニューのショートカットキーを指定しているのですがそれだけだと、キーボードからの入力は受け付けないのですか?
問題なく受け付けます。
どうしても解決できません。
メニューのショートカットキーがある場合、フォーム上でのキーボード入力はどのコントロールにフォーカスがあってもメニューに付したイベントを行うのでしょうか?
以下のように試したところ、ショートカットキーはちゃんと効いています。
・Delphi5 IDE メニュー「ファイル」-「新規作成」で、
「プロジェクト」タブの「SDIアプリケーション」を選択し、OK。
・FileMenu1のOnExecuteイベントがすでに存在するので、MessageDlgを記述。
procedure TSDIAppForm.FileNew1Execute(Sender: TObject);
begin
MessageDlg('新規作成が選択されました。', mtInformation, [mbOk], 0);
end;
・コンパイル・実行し、Ctrl+NでMessageDlgが表示されます。
ちらつき防止隊員 さんのプログラムでは、具体的にはどのようなことをしている
のですか?
お世話になります。
>具体的にはどのようなことをしている
他のフォームを表示させるだけです。
begin
form2.show;
end;
ただ、エクスプローラ風にするために、ツールバーのメニュープロパティを使っていますが、そんことは関係ないっすよね。。。
最初の質問で
>メインメニューのショートカットキーを指定しているのですが
とあったので、TMainMenuコンポーネントに追加したメニュー項目TMenuItemの
ShortCutプロパティにCtrl+Nなど指定しているのかと思っていたのですが、
>ただ、エクスプローラ風にするために、ツールバーのメニュープロパティを使っていますが
具体的には、どのコンポーネントの何というプロパティでショートカットを指定しているのですか?
すいません。
コントロールバーの上にツールバーを置いています。メニュープロパティではありませんでしたが、TMENU型のプロパティですので、MENUと変わらないと思います。
ショートカットはメニューのショートカットプロパティです。
フリーコンポーネントのXPMENUを使っていますが、それは関係無いと思います。
何が問題かわかりづらいので
TActionを使ったほうがいいでしょう。
ちなみに、以下の4パターンで、ショートカットは効きますか?
(メニュー項目のOnClickイベントでは、MessageDlgなどを表示させるようにして。)
・新規プロジェクトでTMainMenuでメニュー項目を追加し、
ショートカットを設定した場合。
・新規プロジェクトでTMainMenuでメニュー項目を追加し、
ショートカットを設定し、TControlBar, TToolBarを組み合わせた場合。
・新規プロジェクトでXPMENUでメニュー項目を追加し、
ショートカットを設定した場合。
・新規プロジェクトでXPMENUでメニュー項目を追加し、
ショートカットを設定し、TControlBar, TToolBarを組み合わせた場合。
お世話になります。
igyさんのパターン早速試させていただきます。
>何が問題かわかりづらいので
おっしゃる通りです。将来自己解決の可能性が…。ご迷惑おかけします。
ただ、新たな問題は見つかりました。Teditorにフォーカスを移した場合、「del」キーがきかないんです。MEMOコンポーネントやTeditではまだ、試していないのですが…。こんなことってあるんですか?
TActionで設定した物を、メニューバーに設定すれば問題ありません。
やっぱりショートカットきかないです。
新規フォームで
Ctl+A
がきかなかったです。他のショートカットは効くのですが。
もとより、最初からつくっていたアプリでは無理です。すいません。
Teditorの「Del」キーのことはショートカットのことと何か関係があると思って投稿しただけです。
ただ、これは何が変わったか知りませんが、突然できるようになりました。
Delphi自体が壊れているのかしら・・・
>やっぱりショートカットきかないです。
>新規フォームで
>Ctl+A
>がきかなかったです。
これは、以前、提案した
>・新規プロジェクトでTMainMenuでメニュー項目を追加し、
> ショートカットを設定した場合。
>・新規プロジェクトでTMainMenuでメニュー項目を追加し、
> ショートカットを設定し、TControlBar, TToolBarを組み合わせた場合。
>・新規プロジェクトでXPMENUでメニュー項目を追加し、
> ショートカットを設定した場合。
>・新規プロジェクトでXPMENUでメニュー項目を追加し、
> ショートカットを設定し、TControlBar, TToolBarを組み合わせた場合。
で試したものですか?
(試したのであれば、4パターンそれぞれの結果も知りたいです。)
>他のショートカットは効くのですが。
具体的には、どのショートカットが効いたのですか?
ちなみに、他のアプリケーションでCtrl+Aは効きます?
(たとえば、ワードなどの場合、Ctrl+Aで、「すべて選択」は実行されます?)
・他の常駐アプリに、Ctl+Aが割り当てられていないでしょうか?
・それとも、フォームのKeyPreviewがfalseで、アクティブコントロールのショートカットキーが反応しているとか…
すいません。返信がかなり遅れてしまいました。
それからみなさんありがとうございます。
>で試したものですか?
>試したのであれば、4パターンそれぞれの結果も知りたいです。)
基本的に新規プロジェクトでは問題無く動きます。
>・他の常駐アプリに、Ctl+Aが割り当てられていないでしょうか?
>・それとも、フォームのKeyPreviewがfalseで、アクティブコントロールのショートカットキーが反応しているとか…
それも確かめましたがどうもそうでもないらしいです。他アプリケーションのCtl+Aは動きます。
ツイート | ![]() |