在MDI主窗口中创建child窗体问题!
我在mainForm中双击treeview菜单创建child窗体。
现在的问题是:点一次就创建一次child窗体实例。我只想存在一个child窗口实例。不希望创建多个实例。
package1中包含了test.pas. Ttestpp = class(TForm); testpp: Ttestpp;
实做代码:
LoadPackage('Pkgtest.bpl');
if TFormClass(FindClass('Ttestpp')) <> nil then
begin
try
TFormClass(FindClass('Ttestpp')).Create(self);
finally
end;
end;
问题点数:50、回复次数:8Top
1 楼malamala(还真是笨)回复于 2005-04-01 17:19:07 得分 30
procedure TMainForm.NewMyFormClick(Sender:TObject);
var
i : Integer
Begin
For i := 0 To MDIChildCount-1 do
if MDIChildren[i] is TMyForm then
begin
MDIChildren[i].BringToFront;
Exit;
End;
Application.CreateForm(TMyform,Myform);
end;
Top
2 楼pengxuan(网虫先生)回复于 2005-04-01 17:34:38 得分 10
if not Assigned(Form1) then
Form1:=TForm1.Create(Application);
Form1.show;Top
3 楼Breakc0de(学无止境)回复于 2005-04-01 17:53:29 得分 0
IF not Assigned(Form1) then
Form1:= TForm1.Create(self)
else
Form1.Show ;
Top
4 楼yosoft()回复于 2005-04-01 18:34:50 得分 0
IF not Assigned(Form1) then
Form1:= TForm1.Create(self)
else
Form1.Show ;
这种方式在我这里不好使用,因为不直接引用到form1的unit。所以使用不了form1变量。Top
5 楼Maple119(枫叶)回复于 2005-04-01 20:55:26 得分 10
你可以在 form1 的 unit 里写一个过程.比如:
proceudre form1show;
begin
if form1 = nil then tform1.create....
end;Top
6 楼yosoft()回复于 2005-04-02 17:07:47 得分 0
to maple119():你这样处理还是需要use Form1的unit啊。
Top
7 楼cyblueboy83(爱情白痴—电脑迷)回复于 2005-04-02 17:44:41 得分 0
to maple119():你这样处理还是需要use Form1的unit啊。
当然要呀,你没继承单元,怎么创建你要的类?Top
8 楼yosoft()回复于 2005-04-08 18:34:30 得分 0
获取VForm类。(我有数据来源)。为了不应用Form类,我把Form类存在别的数据中,然后获取的。
后用这个函数来判断了。问题解决就行了,不过感觉应该有简单的方法。
function IsAlreadForm(vForm: string): boolean;
var
i: integer;
begin
result := false;
for i := 0 to application.MainForm.MDIChildCount - 1 do
begin
if string(application.MainForm.MDIChildren[i].classname) = vForm then
begin
application.MainForm.MDIChildren[i].BringToFront;
result := true;
exit;
end;
end;
end;Top
相关问题
- MDI窗体中的“窗口”菜单中的“当前打开窗口列表”的Click事件怎么调用?
- MDI窗体中的“窗口”菜单中的“当前打开窗口列表”的问题
- 已知一个窗口的Handle,如何将该窗体设置成本程序的MDI子窗体?
- mdi子窗口的关闭(不是窗体上打叉的那个close的)
- ■如何让MDI子窗体的查询进度条在主窗口显示■
- 关于主子窗体(MDI)的问题!控制窗口的大小?
- 我将VB窗体设为顶层窗体(TOPMOST),始终居于其它窗体之上,是这个窗体如果为MDI子窗体就不能置于其它窗口之上,怎么解决?
- 请教,如何判断MDI窗口中某一个子窗体是否已经打开.....????
- 请教各位高手,在开发多窗口MDI中如何在主窗体上加入背景
- 我脸红,请问一下MDI子窗体和一般窗口的区别是什么?




