Heim >Backend-Entwicklung >PHP-Tutorial >So verwenden Sie Tastenkombinationen im Host-DLL-Modus

So verwenden Sie Tastenkombinationen im Host-DLL-Modus

WBOY
WBOYOriginal
2016-08-08 09:33:131162Durchsuche

So verwenden Sie Tastenkombinationen im Host-DLL-Modus

Kürzlich arbeite ich an einem Host-DLL-Plug-in-System. Jedes DLL-Modul erbt ein Basisklassenmodul TBaseForm und definiert dann Funktionen wie das Hinzufügen von F1, das Löschen von F2, das Ändern von F3 und das Überprüfen von F4 eine Tastenkombination,

Im Hauptprogramm wird jedes DLL-Modul über PageControl geladen. Wenn ich mehrere Module öffne und F1 drücke, ruft das System nicht mein aktuell aktiviertes TabSheet-Modul auf

Bei der Funktion stellt sich heraus, dass eine Tastenkombination, nachdem sie vom ersten Modul registriert wurde, ungültig ist, wenn sie von nachfolgenden Modulen registriert wird. Später habe ich über eine Möglichkeit nachgedacht, die Tastenkombinationen des aktuellen Moduls im OnHide-Ereignis von TabSheet und im onShow-Ereignis zu löschen

Anschließend die Tastenkombinationen des aktuellen Moduls verknüpfen und der Test war erfolgreich! ! ! Folgendes ist Teil des Codes:

<span> 1</span> <span>procedure</span> TBaseForm.bidingshortcut; <span>//</span><span>绑定快捷键</span> <span> 2</span> <span>begin</span> <span> 3</span> al_new.ShortCut:=TextToShortCut(<span>'</span><span>F5</span><span>'</span><span>); </span><span> 4</span> al_edit.ShortCut:=TextToShortCut(<span>'</span><span>F6</span><span>'</span><span>); </span><span> 5</span> al_<span>delete</span>.ShortCut:=TextToShortCut(<span>'</span><span>F7</span><span>'</span><span>); </span><span> 6</span> al_refdata.ShortCut:=TextToShortCut(<span>'</span><span>F8</span><span>'</span><span>); </span><span> 7</span> al_query.ShortCut:=TextToShortCut(<span>'</span><span>F3</span><span>'</span><span>); </span><span> 8</span> al_report.ShortCut:=TextToShortCut(<span>'</span><span>F2</span><span>'</span><span>); </span><span> 9</span> al_<span>export</span>.ShortCut:=TextToShortCut(<span>'</span><span>F10</span><span>'</span><span>); </span><span>10</span> al_import.ShortCut:=TextToShortCut(<span>'</span><span>F4</span><span>'</span><span>); </span><span>11</span> al_gridset.ShortCut:=TextToShortCut(<span>'</span><span>F9</span><span>'</span><span>); </span><span>12</span> <span>end</span><span>; </span><span>13</span> <span>14</span> <span>procedure</span> TBaseForm.unbidingshortcut; <span>//</span><span>解除绑定快捷键</span> <span>15</span> <span>begin</span> <span>16</span> al_new.ShortCut:=TextToShortCut(<span>'</span><span>none</span><span>'</span><span>); </span><span>17</span> al_edit.ShortCut:=TextToShortCut(<span>'</span><span>none</span><span>'</span><span>); </span><span>18</span> al_<span>delete</span>.ShortCut:=TextToShortCut(<span>'</span><span>none</span><span>'</span><span>); </span><span>19</span> al_refdata.ShortCut:=TextToShortCut(<span>'</span><span>none</span><span>'</span><span>); </span><span>20</span> al_query.ShortCut:=TextToShortCut(<span>'</span><span>none</span><span>'</span><span>); </span><span>21</span> al_report.ShortCut:=TextToShortCut(<span>'</span><span>none</span><span>'</span><span>); </span><span>22</span> al_<span>export</span>.ShortCut:=TextToShortCut(<span>'</span><span>none</span><span>'</span><span>); </span><span>23</span> al_import.ShortCut:=TextToShortCut(<span>'</span><span>none</span><span>'</span><span>); </span><span>24</span> al_gridset.ShortCut:=TextToShortCut(<span>'</span><span>none</span><span>'</span><span>); </span><span>25</span> <span>end</span>;

Rufen Sie dann unbidingshortcut bzw. biddingshortcut in onHide und onShow im Host-Programm auf.

Hier gibt es einen Basisklassenkonvertierungsprozess. Da ich das aktuelle Formular im Voraus im Tag des Tabsheets gespeichert habe, muss ich nur die folgende Konvertierung durchführen:

TBaseForm(TabSheet.tag).bidingshourtcut wird den Zweck erfüllen.

Das Obige stellt die Verwendung von Tastenkombinationen im Host-DLL-Modus vor, einschließlich der Verwendung von Tastenkombinationen. Ich hoffe, dass es für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn