DELPHI中宏小用


======================================================
注:本文源代码点此下载
======================================================

用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 + 箭头,再按箭头来选择单词

3 所有的操作都必须要用键盘来完成,有什么不明白的可以和我联系.联系方法 qiubole@163.com

绿色通道:好文要顶关注我收藏该文与我联系


======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/
### C语言定义在CCS编译器中不生效的原因分析 当遇到定义在Code Composer Studio (CCS) 编译环境下无法正常工作的情况时,通常可以从以下几个方面排查问题: #### 1. 预处理器配置错误 确保项目设置中的预处理选项已正确配置。某些情况下,特定的编译标志或预处理器指令可能导致未按预期执行[^1]。 ```c #define MACRO_NAME value // 正确的定义方式 ``` #### 2. 条件编译影响 检查是否存在条件编译语句干扰了目标的行为。例如,在`module.h`头文件中有如下逻辑用于控制外部链接属性: ```c #undef EXTERN #ifdef _MODULE_C_ #define EXTERN #else #define EXTERN extern #endif ``` 上述代码片段展示了如何利用 `_MODULE_C_` 的存在与否来切换 `EXTERN` 的含义,从而实现不同场景下的变量声明/定义[^2]. #### 3. 文件包含顺序不当 确认各个源文件之间的依赖关系以及它们被引入项目的先后次序合理。因为的作用范围是从其定义处直到该翻译单元结束为止,所以如果某个必要的`.h`文件未能及时加载,则其中所含有的自然也就不会起作用了。 #### 4. 重定义冲突 注意防止重复定义相同名称但具有不同意义的,这可能会引起意想不到的结果甚至编译失败。可以考虑使用 `#ifndef/#define/#endif` 结构保护重要头部文件免受此类风险的影响。 #### 5. 版本兼容性差异 不同的工具链版本之间可能存在细微差别,建议查阅官方文档了解是否有针对当前使用的 CCS 版本做出特别说明或者调整建议。 为了更精准地定位并解决问题,还需要具体查看报错信息、对比期望行为与实际表现,并适当运用调试手段辅助验证假设。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值