比如说:有个EDIT1框,有个Button1
功能:输入Edit1 ='f_frm'时
我一点Button1 就打开了 名字为f_frm的窗体
当输入EDit2 ='f_frm2'
我一点Button1 就打开了 名字为f_frm2的窗体
请问:这个Button1的代码怎么写?http://expert.csdn.net/Expert/topic/2432/2432431.xml?temp=.1808435
下面是其中一个办法
var
dd:tcomponent;
begin
dd:=application.FindComponent(trim(edit1.Text));
if application.FindComponent(trim(edit1.Text))<>nil then
begin
tform(dd).show;
end;这种办法的确可以解决。但我发现要是我的窗体都不是自动创建的,所以打开时都要
application.create(Tfrm);
frm.show;
这样的话是不是不好办呀?有解吗?而且application.FindComponent(trim(edit1.Text))都会=nil
(因为窗体都不是自动创建的project->options->Forms页选项里)
解决方案 »
- sql 2000 语句过长 连接失败
- 如何将服务器端AdoQuery查询返回的数据集传回给ClientDataSet?
- 100分找--hqhhh(枫叶),顺便求fastreport高手帮助
- Delphi2005有个问题让我太郁闷了!!有用上的进来看看!!
- 请问Delphi能否处理任意类型的异常?
- clientdataset怎么用?
- 关于delphi触摸程序的一个问题(用户一段时间不操作后自动转到特指form)
- 请问怎样在Amazon上买书?
- 你认为比较好的打印控件是什么?
- 求救:在TStringgrid的OnSelectCell事件中如何得到目前鼠标点击的行数和列数?
- 朋友们有没有发现,如果字段为整形,在 DBGrid中显示时,如果DBGrid可以输入修改,输入足够长时,肯定报错,有没有办法控制,字符型的可
- ADOCONNECTION连数据库时出现[DBNMPNTW]ConnectionOpen(Createfile()),是什么原因呢?
可以修改application.create();为tfrm.create(nil);
思路一样.
如果你不创建,怎么能show呢?
var
frm: TForm;
begin
if frm = nil then
frm := TYou_Have_Named_From.Create(Self);
frm.Show;
end;
功能:输入Edit1 ='f_frm'时
我一点Button1 就打开了 名字为f_frm的窗体
当输入EDit2 ='f_frm2'
我一点Button1 就打开了 名字为f_frm2的窗体
请问:这个Button1的代码怎么写?(注我的窗体都不是自动创建)楼上的理解了吗?如果成了,一定大分相送诸位
我是這樣理解的:
你在新建工程時有設計好'f_frm' 與'f_frm2'
只是你通過Project\Options把它們從自動創建列表中移除了。
procedure TfrmMain.BtnCreateClick(Sender: TObject);
var
frm: TForm;
begin
if frm = nil then
frm := Tf_frm.Create(Self);
frm.Show;
end;不過,現在看來你的意思是:
我一点Button1 就創建并顯示出一個名字为f_frm的窗
var
MyFrm : Tform;
begin
if edit1.Text <> '' then
begin
MyFrm := Tform1.Create(self);
MyFrm.Caption := edit1.Text;
MyFrm.Show;
end;
end;
测试了一下达到要求
如果没达到大概是我没理解
to:swayi21(微斯人) "我是這樣理解的:
你在新建工程時有設計好'f_frm' 與'f_frm2'
只是你通過Project\Options把它們從自動創建列表中移除了。"这种理解是对的,我的窗体的确是设计好的。只是在创建列表中移除了.大家再帮我看看是否有解乎!
功能:输入Edit1 ='f_frm'时
我一点Button1 就打开了 名字为f_frm的窗体
当输入EDit2 ='f_frm2'
我一点Button1 就打开了 名字为f_frm2的窗体
请问:这个Button1的代码怎么写?(注我的窗体都不是自动创建)前提:我想打开的窗体是已经存在的。我写的很难理解吗????
Unit1, Unit2;var
frm: TForm;procedure TfrmMain.btnCreateClick(Sender: TObject);
begin
if Edit1.Text = 'f_frm' then
if frm = nil then
frm := Tf_frm.Create(Self); if Edit1.Text = 'f_frm2' then
if frm = nil then
frm := Tf_frm2.Create(Self); if frm = nil then Exit; try
frm.ShowModal;
finally
FreeAndNil(frm);
end;
end;
只知道 string 类型的 'f_frm2'其实这个问题的实质就是 已知 一个窗体名(string类型) 怎么得到 companentname类型的窗体名称