delphi中command/action的疑惑
2008-04-11 12:27:00来源:互联网 阅读 ()
在看了一大堆提到界面和代码分离的理论以后,不知道大家对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并没什么区别.
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash