博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【转】delphi 修改代码补全的快捷键(由Ctrl+Space 改为 Ctrl + alt + Space)
阅读量:6300 次
发布时间:2019-06-22

本文共 2143 字,大约阅读时间需要 7 分钟。

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

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

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

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

 

unit EagleBufferList;interfaceprocedure Register;implementationuses Windows, Classes, SysUtils, Menus, ToolsAPI, Controls;type  TBufferList = class(TNotifierObject, IUnknown, IOTANotifier, IOTAKeyboardBinding)    function GetBindingType: TBindingType;    function GetDisplayName: string;    function GetName: string;    //指定快捷键    procedure BindKeyboard(const BindingServices: IOTAKeyBindingServices);  protected    procedure CodeCompletion(const Context: IOTAKeyContext; KeyCode: TShortcut; var BindingResult: TKeyBindingResult);  end;resourcestring  sBufferList = 'Eagle''s Buffer List';  // register this key bindingprocedure Register;begin  (BorlandIDEServices as IOTAKeyBoardServices).AddKeyboardBinding(TBufferList.Create);end;{
TBufferList }// the code to bind keyprocedure TBufferList.BindKeyboard(const BindingServices: IOTAKeyBindingServices);begin BindingServices.AddKeyBinding([ShortCut(Ord('P'), [ssShift, ssCtrl, ssAlt])], CodeCompletion, Pointer(csCodeList or csManual)); BindingServices.AddKeyBinding([ShortCut(Ord('O'), [ssShift, ssCtrl, ssAlt])], CodeCompletion, Pointer(csParamList or csManual)); BindingServices.AddKeyBinding([ShortCut(Ord(' '), [ssCtrl, ssAlt])], CodeCompletion, Pointer(csCodeList or csParamList or csManual)); {
1,2句是原作者写的 3句是我加的 把代码补完快捷键 替换为 ctrl + alt + space }end;// do code completionprocedure TBufferList.CodeCompletion(const Context: IOTAKeyContext; KeyCode: TShortcut; var BindingResult: TKeyBindingResult);begin (Context.EditBuffer.TopView as IOTAEditActions).CodeCompletion(Byte(Context.Context)); BindingResult := krHandled;end;function TBufferList.GetBindingType: TBindingType;begin Result := btPartial;end;function TBufferList.GetDisplayName: string;begin Result := sBufferList;end;function TBufferList.GetName: string;begin Result := 'EagleKing.BufferList'; // do not localizeend;end.EagleBufferList.pas

 

来自:

 

转载于:https://www.cnblogs.com/yangyxd/articles/7011482.html

你可能感兴趣的文章
LINUX常用命令
查看>>
百度云盘demo
查看>>
概率论与数理统计习题
查看>>
初学structs2,简单配置
查看>>
Laravel5.0学习--01 入门
查看>>
时间戳解读
查看>>
sbin/hadoop-daemon.sh: line 165: /tmp/hadoop-hxsyl-journalnode.pid: Permission denied
查看>>
@RequestMapping 用法详解之地址映射
查看>>
254页PPT!这是一份写给NLP研究者的编程指南
查看>>
《Data Warehouse in Action》
查看>>
String 源码浅析(一)
查看>>
Spring Boot 最佳实践(三)模板引擎FreeMarker集成
查看>>
Fescar 发布 0.2.3 版本,支持 Redis 和 Apollo
查看>>
Google MapReduce到底解决什么问题?
查看>>
CCNP-6 OSPF试验2(BSCI)
查看>>
Excel 2013 全新的图表体验
查看>>
openstack 制作大于2TB根分区自动扩容的CENTOS镜像
查看>>
Unbuntu安装遭遇 vmware上的Easy install模式
查看>>
几个常用的ASP木马
查看>>
Mysql-5.6.x多实例配置
查看>>