最近、Host+DLL プラグイン システムに取り組んでいます。各 DLL モジュールは基本クラス モジュール TBaseForm を継承し、基本クラス モジュールに F1 の追加、F2 の削除、F3 の変更、F4 のチェックなどの関数を定義します。関数が定義されています ショートカット キーを取得しました
メイン プログラムの PageControl を介して各 DLL モジュールをロードします。ここで問題が発生します。複数のモジュールを開いて F1 を押すと、システムは現在アクティブ化されている TabSheet モジュールではなく、モジュールに新しく追加されたモジュールを呼び出します。
関数、最初のモジュールによってショートカット キーが登録されると、その後のモジュールの登録が無効になることがわかります。その後、TabSheetのOnHideイベントとonShowイベントで現在のモジュールのショートカットキーをキャンセルする方法を考えました次に、現在のモジュールのショートカット キーを関連付けると、テストは成功しました。 ! ! 、以下はコードの一部です:
リーリー
次に、ホスト プログラムの onHide と onShow で unbidingshortcut と bidshortcut をそれぞれ呼び出します。ここには基本クラスの変換プロセスがあります。事前に現在のフォームをタブシートタグに保存しているため、次の変換を行うだけで済みます。
TBaseForm(TabSheet.tag).bidingshourtcut が役に立ちます。
http://www.bkjia.com/PHPjc/915784.html