用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 所有的操作都必須要用鍵盤來完成,有什麼不明白的可以和我聯系.聯系方法 [email protected]
dno := ASource.dno