datamodule创建问题
为什么其他form都可以用FORM:=TForm.create(nil)创建,而datamodule用这种方法创建时,提示内存错误,必须使用Application.CreateForm(TDtmdl, Dtmdl)方式创建。
[解决办法]
TForm可以有多个实例。Tdatamodule只能有一个实例。因Tdatamodule里东西都是全局共享的。只需一个实例就够了。
[解决办法]
DataModule2 :=TDataModule2.Create(nil);
DataModule2 :=TDataModule2.Create(nil);
测试一下发现没啥问题哎。DataModule可以建多个实例,我以为因为DataModule是共享的,所以控制了呵
[解决办法]
这里没问题,提示内存错误一般是使用了未实例化的对象
比如 var sl:stringlist;
sl.text := '';
[解决办法]
Dtmdl:=TDtmdl.create(Application)应该不会报错吧。。。
[解决办法]
估计你是Dtmdl没有对这个变量赋值用楼上方法可行,但类内调用自己建议用Self。