c#使用代表(delegate)有什么好处为什么要使用什么时候需要使用
为什么需要使用 就可以回答你前面的两个为什么 比如,在写这个类的时候,根本就不能确定要调用哪个对象的方法:例如,你把自己的一个对象上的方法挂在微软的button的一个事件上。微软在写button时根本就不可能知道这个事件发生时,需要调用哪个对象的哪个方法,只有你自己去指定说需要调什么方法,并且以委托的方式挂在相应的事件上。 微软在写button的事件时,唯一能确定的是这个事件的格式,或者说这个事件需要调用的方法的格式, 类似于 button1_click(object sender, EnentArgs e) 等等。 只要是按照这个类型写的方法,都能被挂在这个事件上,并且在事件发生时,方法会被调用。 而规定了事件方法格式,就确保了事件发生时被调用的方法都是合法的,不会出现方法类型不匹配等等。这就是所谓的委托是类型安全的。通俗的说就是你在写一个类的时候,这个类要完成一件事情,但是你有不知道这件事情该怎么完成,你只知道要完成这件事情,只有这个类在运行的时候调用者方知道怎么完成这件事情,这时候你用一个委托来告诉调用者,这时候要完成一件事情,至于事情怎么完成则有调用方通过委托来完成
如何安装delphi2007的mysql控件
新建数据库/**//* MySQL Data Transfer Source Host: localhost Source Database: blog Target Host: localhost Target Database: blog Date: 2008/04/15 16:18:41 */ SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- Table structure for posts -- ---------------------------- CREATE TABLE `posts` ( `id` int(10) unsigned NOT NULL auto_increment, `title` varchar(50) default NULL, `body` text, `created` datetime default NULL, `modified` datetime default NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=6 DEFAULT CHARSET=utf8; -- ---------------------------- -- Records -- ---------------------------- INSERT INTO `posts` VALUES (’1’, ’The title’, ’This is the post body.’, ’2008-04-08 11:51:46’, null); INSERT INTO `posts` VALUES (’2’, ’A title once again’, ’And the post body follows.’, ’2008-04-08 11:51:46’, null); INSERT INTO `posts` VALUES (’3’, ’Title strikes back’, ’This is really exciting! Not.’, ’2008-04-08 11:51:46’, null); Delphi2007中新建工程,页面上追加TSimpleDataSet及TDataSource控件。 然后做如下设置 字段直接可以拉到页面上的,如下:设置各个控件间的DataSource属性。后台代码:使用 DbExpress 的时候总感觉很别扭。网上也有很多人说这套组件有潜在BUG存在。不知道是不是真的有李维大师所说的那样好。注意:关于事务:使用StartTransaction方法的话需要用到TTransactionDesc类,这需要在开头uses部追加SqlExpr。如果换成BeginTransaction方法的话需要用到TDBXTransaction类,这需要在开头uses部追加DBXCommon。从警告信息可以判断,Delphi2007已经开始不推荐使用StartTransaction方法做事务处理了。
delphi twebbrowser调用网页后,如何用ie打开网页里面的链接
ShellExecute 第三个参数改成ie文件名,而后在打开参数那写连接ShellExecute(Application.Handle,’open’,’Iexplore.exe’,’就好比你打开某一个程序后面带有一个参数iexplore.exe 这样ie 就打开运行参数的连接