delphi 生成新窗口的问题
下面代码有什么问题?为什么没有弹出新窗口呢
procedure TForm1.Button1Click(Sender: TObject);
var form2:tform;
begin
if not assigned(form2) then
Form2:=Form2.create(self);
Form2.show;
form2.Name :='TEST';
end;
[解决办法]
把你的窗体从自动创建窗体列表里移出就好了,不显示不代表不存在!
[解决办法]
form2作为临时变量,一开始不会被赋初值为nil,所以assigned(form2)的值是true
要么把条件语句去掉好了
[解决办法]
哦,不好意思,没仔细看你的意思
Application.CreateForm(TForm,form2);
Form2.show;
form2.Name :='TESTdff';
[解决办法]
Form2.bringtofront
也有可能你的form1是modal
[解决办法]
procedure TForm1.Button1Click(Sender: TObject);var form2:tformMy; //Tform是一个抽象的基类,这里必须是 你自己继承实现的一个form类才行begin //if not assigned(form2) then Form2:=TFormMy.create(self); Form2.show; form2.Name :='TEST'; //注意这个form2没有释放,只会在form1释放是时候被自动释放end;
[解决办法]
procedure TForm1.Button1Click(Sender: TObject);var form2:tform;begin//if not assigned(form2) then//Form2:=Form2.create(self);Application.CreateForm(TForm,form2);Form2.Show;form2.Name :='TEST';end;
[解决办法]
var form2:tform;
form2定义为一个局部变量的话,if not assigned(form2)总是会返回True的,程序结构不正确。
Form2:=Form2.create(self);这一句改为
Form2 := TForm2.Create(self)
必须是类(TForm2)才能Create
[解决办法]
正确的写法:
procedure TForm1.Button1Click(Sender: TObject);
begin
if not assigned(form2) then
Form2:=TForm2.create(self);
Form2.show;
form2.Name :='TEST';
end;