鬼打墙:RegisterClass后FindClass窗体后无法SHowModul
以前的程序一直运行的正常,也没修改什么,很突然的,正常的功能不能使用了,查了很久没有打到原因:
现仅仅做了个简单的测试:
一、新建工程,分别建立两个窗体:Form1 Form2,
二、Form1上加一个按钮Button1,其事件为:
procedure TForm1.Button1Click(Sender: TObject);
var
f:TForm;
begin
f :=TForm(FindClass('TForm1')).Create(nil);
f.ShowModul
end;
initialization
Classes.registerclass(TForm1);
当点击Button1时会报错误:cannot make a visible windows
之所以用FindClass是为了按窗体名称(存于数据库中),动态调用模块
鬼打墙了,以前正常运行,现在怎么折腾都不行了
应该是很平常的错误,却弄了几天也不知道怎么调通了。按网上的说法也不都不行,跪求高手指点!!
急急急!!
[解决办法]
if f.Visible then f.Visible := false ;
f.ShowModule;
[解决办法]
楼主这句话写错了
procedure TForm1.Button1Click(Sender: TObject);
var
f:TForm;
begin
f :=TForm(FindClass('TForm1')).Create(nil);
f.ShowModul;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
f:TForm;
begin
f :=TFormClass(FindClass('TForm1')).Create(nil);
f.ShowModul
end;