用DELPHI的宏可以做一些非常简便的工作, 它是记录键盘的动作,如果我们将一些有规律的动作,用宏来进行操作,就可以达到事半功倍的效果,前提是编写的代码风格比较整洁. 
宏是以Ctrl + Shift + R开始, 也以Ctrl + Shift + R结束, 以Ctrl + Shift + P来播放. 
开始录制宏后,可以在状态栏看到 'Recording'字样. 
以下以Assign为例,来进行举例 
如下,我们的类中有一大堆的变量 
    dno: string[20]; 
    dworker: string[4]; 
    ddate: TDateTime; 
    dtrade_s: string[10]; 
    dtrade_e: string[10]; 
    dmoney_sale: Real; 
    dMoney_last: Real;

dmoney_ss: Real; 
    dman: string[2];        //客层 
    dmoney_SK: Real;          //收款 
    dMoney_ZL: Real;          //找零 
    Money_Mode: Real;         //现金支付金额 
    Ticket_Mode: Real;        //购物券支付金额 
    Czk_Mode: Real;           //储值卡支付金额 
    MZk_Mode: Real;          //面值卡支付金额 
    Bank_Mode: Real;          //银行卡支付金额 
    dCard_Zk: string[20];     //打折卡卡号 
    dCard_Hl: string[20];     //鸿利卡卡号 
    dsubshop: string[4]; 
    dsalesman: string[4];          //营业员

我们想在Assign中,将它的值赋给一个ASource对象对应的值,如下. 
例如: 
procedure TMasterData.AssignValue(ASource: TMasterData); 
begin 
//想得到如下结果 
  dno := ASource.dno; 
  dworker := ASource.dworker; 
  ddate := ASource.ddate; 
  dtrade_s := ASource.dtrade_s; 
  dtrade_e := ASource.dtrade_e; 
  dmoney_sale := ASource.dmoney_sale; 
  dMoney_last := ASource.dMoney_last;

我们该怎么办呢,首先将声明复制下来,形成如下 
procedure TMasterData.AssignValue(ASource: TMasterData); 
begin 
      dno: string[20]; 
      dworker: string[4]; 
      ddate: TDateTime; 
      dtrade_s: string[10]; 
      dtrade_e: string[10]; 
      dmoney_sale: Real; 
      dMoney_last: Real; 
    .... 
这个时候,我们先将焦点放在 dno行的行首, 按Ctrl + Shift + R开始录制,然后按Ctrl+->箭头,光标会移到 dno这个单词的前台,再按Ctrl + Shift + ->,会选取dno: 这一小节,多了两个字符怎么办,按Shift + <-箭头两次,现在就完全选中了dno了,按Ctrl + C,复制, 接下后按->箭头,再按<-箭头 回到:前,再接下来,输入 := ASource. 这几个字母,再按Ctrl + V粘贴,现在就成了dno := ASource.dno: string[20]; 光标在第二个:前,我们再清除后面的字符,按Shift + End, 再按删除键,这样就完成了第一列,然后为了方便,我们将光标定位到第二行的行首, 向下箭上,再按Home键. 
这就是我们所有的按键, 我们按Ctrl + shift + R结束录制,再按 Ctrl + Shift+ P 来播放吧,非常酷吧 
如果非常熟悉 delphi的宏,那么我们可以做出非常多的美妙的事情来,如我们在MSSQL中经常有 
update a set dnum = b.dnum 这一类的东西,完全可以用delphi的宏来完成.

录宏的要点, 
1 一定要注意书写代码整洁的规律 
2 多用ctrl + shift + ->箭头来选择单词 
3 所有的操作都必须要用键盘来完成,有什么不明白的可以和我联系.联系方法 qiubole@163.com

http://www.cnblogs.com/qiubole/articles/116104.html

DELPHI中IDE宏录制小用的更多相关文章

  1. Delphi 提示在Delphi的IDE中,按Ctrl+Shift+G键可以为一个接口生成一个新的GUID。

    对于Object Pascal语言来说,最近一段时间最有意义的改进就是从Delphi3开始支持接口(interface),接口定义了能够与一个对象进行交互操作的一组过程和函数.对一个接口进行定义包含两 ...

  2. IDEA Intellij中vim插件使用小技巧

    在 IDEA Intellij小技巧和插件 一文中简单介绍了一下IdeaVim插件.在这里详细总结一下这个插件在日常编程中的一些常用小技巧.供有兴趣使用这个插件,但对Vim还不十分熟悉的朋友参考.当然 ...

  3. Delphi中编辑word

      其他(28)   //启动Word   try     wordapplication1.connect;   except     messagedlg('word may not be ins ...

  4. Delphi中停靠技术的实现

    随着软件技术的不断进步,软件界面也越来越美观,操作也越来越方便.综观市面上比较专业的各种软件,我们会发现大部分都提供窗体停靠的功能,特别象工具软件,基本上都或多或少有停靠功能.自然,Delphi也支持 ...

  5. Delphi中的窗体创建与销毁

    Delphi中的窗体,有模式窗体与非模式窗体两种.两种窗体的调用方式不同,模式窗体使用ShowModal显示,非模式窗体使用Show显示.当显示模式窗体的时候你是不能操作本程序的其他窗体的,你不能把焦 ...

  6. Delphi中的关键字与保留字

    Delphi中的关键字与保留字 分类整理 Delphi 中的“关键字”和“保留字”,方便查询 感谢原作者的收集整理! 关键字和保留字的区别在于,关键字不推荐作标示符(编译器已经内置相关函数或者留给保留 ...

  7. office中通过宏添加快捷键

    把“Microsoft 公式 3.0”作为一个按钮放在 2013中的快速访问工具栏的方法 在使用office办公软件的过程中,因为有的人还在使用office2003版本,所以在使用高版本的office ...

  8. Delphi中的异常处理

    转载:http://www.cnblogs.com/doit8791/archive/2012/05/08/2489471.html 以前写Delphi程序一直不注意异常处理,对其异常处理的机制总是一 ...

  9. Delphi中的接口和抽象类

    参考:http://blog.csdn.net/xinzheng_wang/article/details/6058643 接口:Interface Delphi中接口中的关键字Interface,但 ...

随机推荐

  1. Mod 与 RequireJS/SeaJS 的那些事

    本文的目的是为了能大让家更好的认识 Mod,之所以引入 RequireJS/SeaJS 的对比主要是应大家要求更清晰的对比应用场景,并不是为了比较出孰胜孰劣,RequireJS 和 SeaJS 都是模 ...

  2. python之递归

    递归的定义:即对自己自身内容的引用. 有用的递归函数应包含以下几步份: 当函数直接返回值时有基本的实例(最小可能性问题): 递归实例,包括一个或者多个问题较小部分的递归调用: 递归的关键就是将问题分解 ...

  3. 每日一“酷”之array

    array--国定类型数据序列 array模块定义一个序列数据结构,看起来和list非常相似,只不过所有成员都必须是相同的基本类型. 1.初始化 array实例化时可以提高一个参数来描述允许哪个种数据 ...

  4. WPF之UseLayoutRounding和SnapsToDevicePixels

    最近在工作中看别的朋友XML代码时,发现SnapsToDevicePixels 属性然后通过查询资料了解其作用 1)UserLayoutRounding为False,导致控件布局相对屏幕若不是整数则不 ...

  5. WPF编译时提示“...不包含适合于入口点的静态‘Main’方法 ...”

    今天看了一下wpf的Application类方面的知识,一个windows应用程序由一个Application类的实例表示,该类跟踪在应用程序中打开的所有窗口,决定何时关闭应用程序(属性 Shutdo ...

  6. Jquery each 的跳出 break continue

    在Jquery each 中 break 是用 return false; continue 是用 return true;

  7. NET

    NET狂官方面试题-数据库篇答案   题目:http://www.cnblogs.com/dunitian/p/6028838.html 汇总:http://www.cnblogs.com/dunit ...

  8. Linux下卸载和安装MySQL[rpm包]

    一.卸载原来的mysql: 卸载一: 输入: #rpm -qa | grep -i mysql 显示: mysql-libs-5.1.52-1.el6_0.1.i686 卸载方法: yum -y re ...

  9. ruby 格式化当前日期时间

    ruby 格式化当前日期时间 ruby 用Time类获取当前时间. t = Time.new puts t 可以看到输出的是(我现在运行的时间): Sat Jan 29 10:45:22 +0800 ...

  10. 在ASP.NET MVC应用程序中实现Server.Transfer()类似的功能

    在ASP.NET MVC应用程序中,如果使用Server.Transfer()方法希望将请求转发到其它路径或者Http处理程序进行处理,都会引发“为xxx执行子请求时出错”的HttpException ...