zoukankan      html  css  js  c++  java
  • delphi 修改代码补全的快捷键(由Ctrl+Space 改为 Ctrl + alt + Space)

    delphi 的IDE快捷键与输入法切换键中突,以往的解决方法是下载一个ImeTool修改 windows 系统的快捷键

    在 xp win7 都好使,但在win 10经常是修改完后,重启又失效了。

    本方法采用 Open Tools API 编写是一个组件。安装方法:

    菜单-->Component -->install Component 然后选择此本单元,然后就瞎折腾吧。就好了。

    源码下载

    D7_KeyMapping下载 XE8_KeyMapping下载

     1 unit EagleBufferList;
     2 
     3 interface
     4 
     5 procedure Register;
     6 
     7 implementation
     8 
     9 uses Windows, Classes, SysUtils, Menus, ToolsAPI, Controls;
    10 
    11 type
    12   TBufferList = class(TNotifierObject, IUnknown, IOTANotifier, IOTAKeyboardBinding)
    13     function GetBindingType: TBindingType;
    14     function GetDisplayName: string;
    15     function GetName: string;
    16     //指定快捷键
    17     procedure BindKeyboard(const BindingServices: IOTAKeyBindingServices);
    18   protected
    19     procedure CodeCompletion(const Context: IOTAKeyContext; KeyCode: TShortcut; var BindingResult: TKeyBindingResult);
    20   end;
    21 
    22 resourcestring
    23   sBufferList = 'Eagle''s Buffer List';
    24 
    25   // register this key binding
    26 procedure Register;
    27 begin
    28   (BorlandIDEServices as IOTAKeyBoardServices).AddKeyboardBinding(TBufferList.Create);
    29 end;
    30 
    31 { TBufferList }
    32 
    33 // the code to bind key
    34 procedure TBufferList.BindKeyboard(const BindingServices: IOTAKeyBindingServices);
    35 begin
    36   BindingServices.AddKeyBinding([ShortCut(Ord('P'), [ssShift, ssCtrl, ssAlt])], CodeCompletion,
    37     Pointer(csCodeList or csManual));
    38   BindingServices.AddKeyBinding([ShortCut(Ord('O'), [ssShift, ssCtrl, ssAlt])], CodeCompletion,
    39     Pointer(csParamList or csManual));
    40   BindingServices.AddKeyBinding([ShortCut(Ord(' '), [ssCtrl, ssAlt])], CodeCompletion,
    41     Pointer(csCodeList or csParamList or csManual));
    42   { 1,2句是原作者写的
    43     3句是我加的 把代码补完快捷键 替换为 ctrl + alt + space
    44   }
    45 end;
    46 
    47 // do code completion
    48 procedure TBufferList.CodeCompletion(const Context: IOTAKeyContext; KeyCode: TShortcut;
    49   var BindingResult: TKeyBindingResult);
    50 begin
    51 
    52   (Context.EditBuffer.TopView as IOTAEditActions).CodeCompletion(Byte(Context.Context));
    53   BindingResult := krHandled;
    54 
    55 end;
    56 
    57 function TBufferList.GetBindingType: TBindingType;
    58 begin
    59   Result := btPartial;
    60 end;
    61 
    62 function TBufferList.GetDisplayName: string;
    63 begin
    64   Result := sBufferList;
    65 end;
    66 
    67 function TBufferList.GetName: string;
    68 begin
    69   Result := 'EagleKing.BufferList'; // do not localize
    70 end;
    71 
    72 end.
    EagleBufferList.pas

    附:delphi 进阶基础技能说明

  • 相关阅读:
    反Secure Boot垄断:兼谈如何在Windows 8电脑上安装Linux
    火车售票系统(数据结构课设)
    货物管理系统(数据结构链式表)
    货物管理系统(数据结构顺序表)
    进制转换器(十进制转n进制)
    大学生成绩管理系统(C语言)
    如何对Linux的grub进行加密
    戴文的Linux内核专题:07内核配置(3)
    戴文的Linux内核专题:06配置内核(2)
    戴文的Linux内核专题:05配置内核(1)
  • 原文地址:https://www.cnblogs.com/lackey/p/5373761.html
Copyright © 2011-2022 走看看