我想把MDI的子窗口的name值存到数据库里面,然后再在程序里面取出来打开相应的窗口~
这是我打开MDI子窗口的代码:procedure tform17.OpenA(sender:TObject);
begin
if not Assigned(Form1) then //判断子窗体是否已打开
begin
Form1:=TForm1.Create(Self);
Form1.Show;
end
else Form1.BringToFront;
end;麻烦帮我改改,主要是form1和字符串怎么匹配~谢谢了
这是我打开MDI子窗口的代码:procedure tform17.OpenA(sender:TObject);
begin
if not Assigned(Form1) then //判断子窗体是否已打开
begin
Form1:=TForm1.Create(Self);
Form1.Show;
end
else Form1.BringToFront;
end;麻烦帮我改改,主要是form1和字符串怎么匹配~谢谢了
解决方案 »
- 读取显示数据库问题
- Delphi 中如何写类、方法和属性
- Delphi 2006 功能强大,还是VS.NET 2005功能强大 如果说VS的话,DELPHI 2006到底落后多少?
- 請教
- 为何用Dbisam数据库执行程序时会产生dat临时文件?
- 請問各位大俠一個問題?
- delphi2009下pAnsiChar的困惑。。。。。。。
- 键盘监控问题,如何实时获取按键输入
- 请问DEPHLI对网络的底层操作功能如何?
- 急疯了,急疯了!我的输入框DBEdit1为什么老报错
- 像qq这种登录后,可以点击诸如qq邮箱然后直接登录网站的是如何实现的呢。。。。。实现的呢。。。。实现的呢。。。。。实现的呢。。。。。实现了。。。。
- socket 自定应用层协议
initialization
RegisterClass(TForm1);end.然后,在需要根据窗体类名创建窗体的地方做如下操作。
var
FClass: TPersistentClass;
FForm : TForm;
begin
FClass := FindClass('TForm1');
if Assigned(FClass) then
begin
FForm := TFormClass(FClass).Create(Self);
//……你可以随便处理这个根据类名创建出来的窗体。
end
else
ShowMessage('类TForm1未注册!');
end;大概就是这个样子了。
首先定义一个函数
procedure TForm1.MyMenuItemClick(Sender: TObject);
var
FClass: TPersistentClass;
FForm : TForm;
begin
FClass := FindClass((Sender as TMenuItem).Hint);
if Assigned(FClass) then
begin
FForm := TFormClass(FClass).Create(Self);
//……你可以随便处理这个根据类名创建出来的窗体。
end
else
ShowMessage('类TForm1未注册!');
end;
然后你在动态创建菜单项的地方,把这个类名(例如:TMyForm1)传递给这个菜单项的Hint属性。
var
FItem: TMenuItem;
begin
FItem := TMenuItem.Create(MainMenu1);
FItem.Caption := '测试';
FItem.Hint := 'TMyForm1';
//……
FItem.OnClick := MyMenuItemClick;
MainMenu1.Items.Add(FItem);
end;
如果,这样你还无法理解的话,我真的就无话可说了……
首先 RegisterClass(); 定义类名。
然后按照 反射模式创建即可。
至于反射怎么写, 网上搜下一大堆