首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

delphi 生成新窗口的有关问题

2012-03-01 
delphi 生成新窗口的问题下面代码有什么问题?为什么没有弹出新窗口呢procedure TForm1.Button1Click(Sende

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
[解决办法]

Delphi(Pascal) code
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;
[解决办法]
Delphi(Pascal) code
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;

热点排行