a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > 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中獲取和修改文件的時間

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

新聞熱點

疑難解答

圖片精選

網友關注

主站蜘蛛池模板: 国产区最新 | 国产精品电影 | 欧美视频在线观看免费 | 欧美日韩不卡在线 | 国产成人精品亚洲7777 | 国产女爽爽视频精品免费 | 亚洲最大成人免费视频 | 视频一区二区在线 | 国产精品极品美女在线观看免费 | 婷婷色国产偷v国产偷v小说 | www.日韩大片 | 男人的天堂免费 | 亚洲欧洲在线观看 | 狠狠狠色丁香婷婷综合久久五月 | jizz在亚洲| 久久理论片 | 成人欧美一区二区三区白人 | 欧美国产视频 | 在线第一页 | 日韩成人国产 | 一区二区三区播放 | 国产欧美一区二区精品性色 | 亚洲国内精品 | 久久精品国产一区二区三区不卡 | 国产精品国产成人国产三级 | 亚洲一区二区三区免费在线观看 | 久久99这里只有精品 | 中文字幕亚洲欧美精品一区四区 | 久久久久久av | 在线成人免费观看www | 久久精品综合 | 国产一区 | 亚洲免费一级片 | 欧美成人免费在线 | 精品国产一区二区三区四区 | 99精品热| 欧美日韩一区二区视频在线观看 | 欧美激情在线播放 | 日本黄色一级片免费看 | 欧美午夜精品久久久久久浪潮 | 激情999|