国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Delphi > 正文

delphi中command/action的疑惑

2019-11-18 18:16:14
字體:
來源:轉載
供稿:網友

   在看了一大堆提到界面和代碼分離的理論以后,不知道大家對command/action模式到底是怎么理解的?我在此也有如此疑問,一般情況下在dlephi中一提到command/action 模式,第一個想到的就是TActionList,TActionManager等一系列的action控件,然而似乎delphi控件的設計方式或者說事件件調用方法本身就是以command/action模式來進行設計的。也就是說不必去刻意的追求command/action模式而是在一般的編碼是注意一些我看就足夠了。

就我的理解以TButton的OnClick事件來說。
   一般情況下,在我們的程序重要想定義這個事件直接雙擊該控件然后再寫代碼就是了,例如:
   PRocedure TForm1.Button1Click(Sender: TObject);
   begin
     ...; 
   end;
  可能有人會認為這樣代碼和界面耦合就比較嚴重了因為這個函數實際上和界面混合在一起了.以后要是修改界面的話就會很麻煩了。
 可是我卻不這么認為,就以下為例吧:
 要是想用另一個button2(或是一個menuitem或是其他的一個command事件)來實現這個功能,我可以讓button2的OnClick事件指向指向Button1Click就行啊。并且在修改的時候也只是維護Button1Click這一份代碼阿?

或者在其次我在button2的初始化的時候(因為button2可以動態創建)令button2.OnClick := Button1Click就行啊,我為什么要一定來實現這個所謂的TAction呢?

再說道對界面的控制,用TAction 的對象可以對界面對象進行一些簡單的操作,可是在一般情況下我也可以通過調用函數的sender參數來完成相同的工作阿,比如我想讓所有的調用了button1Click的空間都消失我可以這樣做:

  if Sender is TControl then
     TControl(Sender).Visible := false;

這和調用TAction.Visible并沒什么區別.



 


上一篇:在delphi字符中包括單引號(')

下一篇:在Delphi中獲取和修改文件的時間

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
學習交流
熱門圖片

新聞熱點

疑難解答

圖片精選

網友關注

主站蜘蛛池模板: 抚州市| 云霄县| 临海市| 合山市| 桂东县| 遂宁市| 芜湖市| 车致| 定西市| 瑞安市| 鸡东县| 南靖县| 丰台区| 沈阳市| 沙坪坝区| 安远县| 习水县| 土默特左旗| 廊坊市| 大英县| 临漳县| 张家口市| 古蔺县| 五指山市| 桂阳县| 高邑县| 开江县| 武威市| 陕西省| 崇州市| 巴林右旗| 综艺| 鸡西市| 文昌市| 客服| 青浦区| 普陀区| 张家川| 丹棱县| 鄂托克旗| 南乐县|