这个语句怎么写:判断组件是否存在? 请教一下,这个语句怎么写? 如果name为'a'的窗体存在,则显示窗体a ,如果不存在,则创建a 谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 if a=nila.createelsea.show If not Assigned(Form3) Then begin Application.CreateForm(TForm3, Form3); Form3.show; end else Form3.Show; try Form3.show;except Application.CreateForm(TForm3, Form3); Form3.show;end; 抱歉,漏了一点,如果这个窗体a即使存在也是动态创建的,如果它还没有创建我将连a都取不到该怎么办呢?举个例子说就是点击button1,动态创建了窗体a(a应该是个变量吧,因为我还要创建b,c...),再次点击button1的时候,如果它没有被关闭就显示它。代码怎么写呢?我照楼上几位的方法做了,好象都不行,谁能再个看一下,谢谢。 补充一点,也就是说,怎样判断是否存在一个name='a'的窗体,不知道这样描述大家能不能明白。谢谢 那要看你的变量a在button1click外面是否可见,如果不可见的话是不能判断的。要想判断也只能通过句柄了。FindWindow FindWindow怎么用,哪个lpClassName 如果是TForm的话该怎么写?谢谢 我用findwindow(nil,'a')得到这个窗体存在,怎么把它找到再Show出来呢?谢谢! 你的意思是根据一个窗体name的字符串打开一个窗体吧,可以这样实现。var TmpFormClass:tformclass; TmpFormName:String; TmpHandle:TCustomForm;begin TmpFormName='窗体name的名称'; TmpFormClass:=Tformclass(findclass('T'+TmpFormName)); //前边加了个T,因为"类名=T+窗体名" if TmpFormClass<>NIL then //找到这个类了 TmpHandle:=TmpFormClass.Create(application) //打开这个窗体 else //显示窗体不存在end注意:最后别忘在程序里声明一下你要用这种方式打开的类,在主程序里的最后加上initialization RegisterClasses ([T窗体名1,T窗体名2]);finalization UnRegisterClasses ([T窗体名1,T窗体名2]);=============师傅领进门,修行在个人,怎么领会,就是你个人的事了!Delphi博大精深,只有想不到,没有做不出的! 因为form是动态创建的,不能确定它有几个,而且name属性的值是在创建的时候赋给它的,所以再请教一下楼上怎么注册这些form,谢谢 你是說多文檔界面嗎?你的意思說當前窗口不是你要打開的窗口,如果你現在要打開那個窗口,如果存在就設為當前窗口,不存在就創建並打開它。是這相意思嗎?注意下面一定要是childform才行。if a=nill then a:=Ta.create(application)else a.設為當前窗口 如何经音频文件融入可执行文件? 执行了ADO相关的语句之后浮点数精度变化? 喜歡了公司的一個女孩,想追,希望兄弟們能提供泡妞完美攻略。 请问怎样获得打印机的信息,并用程序控制打印机,实现对打印机的灵活操作,多谢! 用IdTCPServer和IdTCPClient传输大文件时出问题了,怎么办? 求树型控件用法,请高手赐教。级别太低,只能放100分,分不够再加。谢谢 流问题 高手的前进道路 寻求delphi中的winsock的类 对象 事件的参考资料? ListBox中的显示问题 大家来看看 我一大学同学说的“上课不如上厕所,考四级不如烤蚂蚱”。。。汗。。。。
a.create
else
a.show
begin
Application.CreateForm(TForm3, Form3);
Form3.show;
end
else Form3.Show;
Form3.show;
except
Application.CreateForm(TForm3, Form3);
Form3.show;
end;
举个例子说就是点击button1,动态创建了窗体a(a应该是个变量吧,因为我还要创建b,c...),再次点击button1的时候,如果它没有被关闭就显示它。代码怎么写呢?我照楼上几位的方法做了,好象都不行,谁能再个看一下,谢谢。
要想判断也只能通过句柄了。FindWindow
TmpFormClass:tformclass;
TmpFormName:String;
TmpHandle:TCustomForm;
begin
TmpFormName='窗体name的名称';
TmpFormClass:=Tformclass(findclass('T'+TmpFormName)); //前边加了个T,因为"类名=T+窗体名"
if TmpFormClass<>NIL then //找到这个类了
TmpHandle:=TmpFormClass.Create(application) //打开这个窗体
else
//显示窗体不存在
end注意:最后别忘在程序里声明一下你要用这种方式打开的类,在主程序里的最后加上
initialization
RegisterClasses ([T窗体名1,T窗体名2]);
finalization
UnRegisterClasses ([T窗体名1,T窗体名2]);=============
师傅领进门,修行在个人,怎么领会,就是你个人的事了!
Delphi博大精深,只有想不到,没有做不出的!
注意下面一定要是childform才行。
if a=nill then
a:=Ta.create(application)
else
a.設為當前窗口