delphi 2007中Self.AutoPostBackControl := nil;问题解决方法
来源:互联网 发布:干扰网络的软件 编辑:程序博客网 时间:2024/04/29 16:33
delphi 2007中Self.AutoPostBackControl := nil;问题解决方法
一、问题:
在BDS2007中,如果系统安装了Dotnet FromeWork 3.5以上版本,则会导致BDS2007进行asp.net页面设计时,一旦保存页面,就在InitializeComponent方法中自动添加一条语句Self.AutoPostBackControl := nil;导致BDS不能编译成功,虽删除后可以编译,但麻烦是每次修改任何页面文件,都会重新生成此语句,十分影响开发效率,delphi官方网站上也有不少人在讨论,但没有找到解决方法。
二、解决方法:
笔者通过查阅Dotnet FromeWork 3.5资料,AutoPostBackControl是2.5以上System.Web.UI.Page的新增对象属性,在FromeWork2.0中并没有,因此,可以在页面类中增加一个成员变量:AutoPostBackControl:System.&Object;即可解决编译,而又不对系统运行造成影响,程序如下:
1、保存页面时,InitializeComponent;方法中自动生成了语句Self.AutoPostBackControl := nil;
procedure TMakeJsData.InitializeComponent;
begin
Include(Self.Button1.Click, Self.Button1_Click);
Self.AutoPostBackControl := nil; //自动生成的代码,导致delphi2007不能正常编译
Include(Self.Load, Self.Page_Load);
end;
2、bds页面程序中,在页面的public中增加如下对象变量: AutoPostBackControl:System.&Object;
可以使使编译通过并且运行时不会有问题,因为bds2007本不就不用AutoPostBackControl属性。
type
TMakeJsData = class(System.Web.UI.Page)
{$REGION 'Designer Managed Code'}
strict private
procedure InitializeComponent;
procedure Button1_Click(sender: System.Object; e: System.EventArgs);
{$ENDREGION}
strict private
procedure Page_Load(sender: System.Object; e: System.EventArgs);
strict protected
Button1: System.Web.UI.WebControls.Button;
Label1: System.Web.UI.WebControls.Label;
protected
procedure OnInit(e: EventArgs); override;
private
{ Private Declarations }
public
{ Public Declarations }
AutoPostBackControl:System.&Object; //增加此成员变量
end;
编译顺利通过,发布到装了FromeWork 2.0、FromeWork 3.5的服务器上测试,程序运行正确。
- delphi 2007中Self.AutoPostBackControl := nil;问题解决方法
- Delphi中Create(nil),Create(self),Create(Application)区别
- Delphi中Create(nil),Create(self),Create(Application)区别
- Delphi中Create(nil),Create(self),Create(Application)区别
- Delphi中Create(nil),Create(self),Create(Application) 区别
- self.xxx = nil
- delphi中nil的使用方法
- delphi中nil的用法
- Objective-C中init函数实现的相关研究 if ((self = [super init]) != nil)
- Objective-C中init函数实现的相关研究 if ((self = [super init]) != nil)
- Objective-C中init函数实现的相关研究 if ((self = [super init]) != nil)
- Delphi COM+中调用webservice错误提示问题解决方法
- self.abc = nil [abc release]的区别
- 【转】self.myOutlet=nil、viewDidUnload、dealloc的本质剖析
- self.abc = nil 和 [abc release]的区别
- IOS8 UI: 由 self.view = nil 引起的思考
- IOS开发之内存管理self.prop=nil; vs. [prop release];prop=nil;
- [IOS 开发] self.myOutlet = nil 和 myOutlet = nil的区别
- 通用软件产品化的一些想法(2)
- Oracle数据库在.net连接问题总结
- div八点大小改变
- 宝贝的话,要听!一定要做到!
- 讨生活
- delphi 2007中Self.AutoPostBackControl := nil;问题解决方法
- Introspect in ruby
- ruby quiz learned - Solitaire Cipher
- Gentoo使用经验
- 网址和乱码互相转换
- 不重启IE修改代理服务器的设置
- 几种典型的面向对象开发方法
- IOC(控制反转)框架集合
- 面向对象的系统分析(一)-系统分析方法