我创建了一个子窗体,但运行后,子窗体为什么不能被激活!!急,在线等!!!(100分)

  • 主题发起人 主题发起人 gulan
  • 开始时间 开始时间
G

gulan

Unregistered / Unconfirmed
GUEST, unregistred user!
我创建了一个子窗体,但运行后,子窗体为什么不能被激活!主窗体也不能被激活
代码如下
其中intForm为integer的公用函数.

procedure TForm1.Button1Click(Sender: TObject);
var
frmTemp: TForm;
TreeViewTemp: TTreeView;
begin
frmTemp:=TForm.Create(self);
Form1.InsertControl(frmTemp);
with frmTemp do
begin
Name:='Form'+inttostr(intForm+10);
Top:=60*intForm;
Width:=120;
Height:=60;
TreeViewTemp:=TTreeView.Create(self);
InsertControl(TreeViewTemp);
TreeViewTemp.OnMouseDown:=MouseDown;
TreeViewTemp.OnMouseUp:=MouseUp;
with TreeViewTemp do
begin
Name:='TreeView'+inttostr(intForm+10);
Align:=alClient;
end;
showmodal;
end;
inc(intForm);
end;
 
第一次见着这么用的,学习。
 
為什麼要這樣做呀,先放好不行嗎
 
那还有什么用法?介绍一下!
 
To:LeeChange
第一次见着这么用的?不会吧?看看InputQuery这个函数的代码[:D]
 
procedure TForm1.Button1Click(Sender: TObject);
var
frmTemp: TForm;
TreeViewTemp: TTreeView;
begin
frmTemp:=TForm.Create(self);
Form1.InsertControl(frmTemp);
with frmTemp do
begin
formstyle := fsmdichild;
//呵,说一下,你好像忘了把frmtemp的formstyle属性改变为fsmdichild,
//还有,你的主窗口的formstyle属性必须是fsmdiform
Name:='Form'+inttostr(intForm+10);
Top:=60*intForm;
Width:=120;
Height:=60;
TreeViewTemp:=TTreeView.Create(self);
InsertControl(TreeViewTemp);
TreeViewTemp.OnMouseDown:=MouseDown;
TreeViewTemp.OnMouseUp:=MouseUp;
with TreeViewTemp do
begin
Name:='TreeView'+inttostr(intForm+10);
Align:=alClient;
end;
showmodal;
//子窗口好像不能用showmodal;
end;
inc(intForm);
end;
//打开项目单元看看下面这一句是写在哪,下面这句是建立一个窗口,你要确保你的主窗口在最先被建立。
application.createform(tform1, form1);
 
这样可以显示:
procedure TForm1.Button1Click(Sender: TObject);
var
frmTemp: TForm;
TreeViewTemp: TTreeView;
begin
frmTemp:=TForm.Create(self);
// Form1.InsertControl(frmTemp);
with frmTemp do
try
Name:='Form'+inttostr(intForm+10);
Top:=60*intForm;
Width:=120;
Height:=60;
TreeViewTemp:=TTreeView.Create(self);
// InsertControl(TreeViewTemp);
TreeViewTemp.OnMouseDown:=MouseDown;
TreeViewTemp.OnMouseUp:=MouseUp;
with TreeViewTemp do
begin
Name:='TreeView'+inttostr(intForm+10);
Align:=alClient;
Parent := frmTemp;
end;
showmodal;
finally
Free;
end;
inc(intForm);
end;
 
所以说要学习嘛。
记忆中只在改变控件的parent时用过insertXXX的。
 
boot.ini
你的方法好像可以,但当我创建了两个以上的窗口后,激活子窗体时报错,
 
我知道错在那了,需要添加
application.createform(tform, frmTemp);
 
接受答案,谢谢。
 
接受答案了.
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
628
import
I
S
回复
0
查看
937
SUNSTONE的Delphi笔记
S
后退
顶部