CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  VCL组件开发及应用

如何通过字符串来调用窗体?

楼主Guohui(rex)2002-08-02 20:47:31 在 Delphi / VCL组件开发及应用 提问

我有几个窗体,eg:   form1   ,form2,form3     ,在PB   中可通过open   打开,delphi   如何实现,从Create   到   show   ? 问题点数:81、回复次数:6Top

1 楼luoweicaisd(笑三少)回复于 2002-08-02 21:04:23 得分 1

调用的前题是你的form不是动态创建的,是程序启动时已创建,只是没show出来。  
  procedure   TForm1.Button1Click(Sender:   TObject);  
  var  
      str   :   string;  
      temp:Tform;  
  begin  
      str   :='form2';  
      temp   :=     (application.FindComponent(str)   as   Tform);  
      temp.show;  
  end;  
  Top

2 楼suny_2001(小鱼儿)回复于 2002-08-02 21:07:58 得分 80

比如一个单元的名字为TEST,它的FORM名字为FRMTEST;  
  首先要在TEST单元里写上  
  initialization  
  RegisterClass(tfrmtest);  
   
  然后调用  
  Uses   Test;  
   
  procedure   Tform1.Button1Click(Sender:   TObject);  
  var  
      fcType   :   TFormClass;  
      f   :   TForm;  
      frmname:string;  
  begin  
      try  
          frmname:='Tfrmtest'  
          fcType   :=   TFormClass(FindClass(frmname));  
          application.CreateForm(fctype,f);  
          f.Showmodal;  
          f.Free;  
      except  
          ShowMessage('Form   Type   not   exist,you   must   register   it   first');  
      end;  
   
  end;  
  Top

3 楼zxd_2000(潜龙勿用)回复于 2002-08-02 23:53:02 得分 0

同意luoweicaisd(笑三少)Top

4 楼hezchuan168(开心果)回复于 2002-08-03 08:21:56 得分 0

var  
  myform:tform;  
  temp:integer;  
  begin  
  //必须先判断Mylist是否已经成立  
  If   Mylist<>nil   then  
      begin  
      myform   :=tfrom.Create(self);  
      myform.Parent   :=self;  
      temp   :=mylist.Add(myform);  
      //设置mybutton的各项属性  
         
      mybutton.Left   :=100;  
      mybutton.Width   :=150;  
      myform.Caption   :='第'+inttostr(temp)+'个被建立的对象';//设置mybutton的click事件处理过程  
    //   myform.OnClick   :=formIndexofclick;  
      showmessage(myform.caption)  
      end  
   
      else  
        showmessage('mylist尚未建立');  
      end;Top

5 楼liclin(林林)回复于 2002-08-03 08:30:02 得分 0

对于动态创建的窗口,如楼上所说,如果要释放,可在相应窗口的  
  onclose函数下写入:  
                Action:=caFree;  
                myform:=nil;//切记,这句不可少,不然会出错Top

6 楼yyb2000(三流编程机器)回复于 2002-08-03 08:32:19 得分 0

楼上的,,myform:=nil这句只有在MDI的时候才有用吧,,,Top

相关问题

  • 如何调用Ado的创建连接字符串的Build窗体?
  • 字符串如何转化为窗体
  • 如何使字符串与相应的窗体联系?
  • 如何获得另一个窗体的textBox中的字符串?
  • 我在调用notepad.exe 如何传递给他一个字符串。
  • 调用C程序如何取得返回字符串?
  • 如何通过字符串调用类的方法
  • ???????????如何通过函数名(字符串)调用函数????????????
  • 寻求帮助:如何在ole调用excel时,将excel中的字符串a全部替换成字符串b?
  • 谁知道如何根据一个字符串来得到一个窗体

关键词

  • 调用
  • myform
  • fctype
  • frmname
  • mybutton
  • mylist
  • tform
  • showmessage
  • 创建
  • nil

得分解答快速导航

  • 帖主:Guohui
  • luoweicaisd
  • suny_2001

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo