Host+DLL 모드에서 단축키를 사용하는 방법
최근에 Host+DLL 플러그인 시스템을 작업하고 있습니다. 각 DLL 모듈은 기본 클래스 모듈인 TBaseForm을 상속한 다음 기본 클래스 모듈에서 F1 추가, F2 삭제, F3 변경 및 F4 확인과 같은 기능을 정의합니다. 바로가기 키로 정의되어 있습니다.
기본 프로그램에서 각 DLL 모듈은 PageControl을 통해 로드됩니다. 여러 모듈을 열고 F1을 누르면 시스템이 현재 활성화된 TabSheet 모듈이 아닌 처음으로 열린 새 모듈을 호출합니다.
기능적으로, 첫 번째 모듈에서 단축키를 등록한 후 후속 모듈에서 등록하면 무효화되는 것으로 나타났습니다. 나중에 TabSheet의 OnHide 이벤트와 onShow 이벤트에서 현재 모듈의 단축키를 취소하는 방법을 생각했습니다.
그런 다음 현재 모듈의 단축키를 연결하면 테스트가 성공했습니다! ! ! , 다음은 코드의 일부입니다.
<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>;
그런 다음 호스트 프로그램의 onHide 및 onShow에서 각각 unbidingshortcut 및 biddingshortcut을 호출합니다.
여기에는 기본 클래스 변환 프로세스가 있습니다. 탭 시트의 태그에 현재 양식을 미리 저장했기 때문에 다음 변환만 수행하면 됩니다.
TBaseForm(TabSheet.tag).bidingshourtcut이 그 일을 해낼 것입니다.
위 내용은 단축키 사용법을 포함하여 Host+DLL 모드에서 단축키 사용법을 소개하고 있으니 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되었으면 좋겠습니다.