如何在第二个窗体中引用动态生成的第一个窗体的值

[复制链接]
查看11 | 回复7 | 2021-1-27 06:01:58 | 显示全部楼层 |阅读模式
如下所示:
f1:='Frm_Sand';
tf1:='TFrm_Sand';
//CreateMyForm(tf1,f1);
ifApplication.FindComponent(f1)=nilthen
begin
ifGetClass(Tf1)nilthen
begin
withTForm(TComponentClass(FindClass(Tf1)).Create(application))do
begin
name:=f1;
showmodal;
free;
end;
end;
end
else
begin
TForm(Application.FindComponent(f1)).ShowModal;
free;
end;
用以上代码生成了窗体frm_sand,然后在窗体frm_sand上又创建打开了一个窗体Form1,在FORM1中引用frm_sand.edit1.text的时候出错,若在引用前创建frm_sand实例,则显示的值为空
分 -->
回复

使用道具 举报

千问 | 2021-1-27 06:01:58 | 显示全部楼层
frm_sand是什么?窗体变量?
回复

使用道具 举报

千问 | 2021-1-27 06:01:58 | 显示全部楼层
1、不可引用动态窗体中的值(控件的值)会出现读取错误。
2、你可以设置一个全程变量,作为缓冲过度。动态窗体将需要的值写入缓冲变量。再读取。
回复

使用道具 举报

千问 | 2021-1-27 06:01:58 | 显示全部楼层
form1usessand了么
回复

使用道具 举报

千问 | 2021-1-27 06:01:58 | 显示全部楼层
可以定义一个全局变量么,释放的时候记录edit1的值。
回复

使用道具 举报

千问 | 2021-1-27 06:01:58 | 显示全部楼层
引用1楼jankercsdn的回复:frm_sand是什么?窗体变量?
是窗体的名称,一个字符串
回复

使用道具 举报

千问 | 2021-1-27 06:01:58 | 显示全部楼层
引用3楼jjpweb的回复:form1usessand了么
不关引用不引用的事
回复

使用道具 举报

千问 | 2021-1-27 06:01:58 | 显示全部楼层
引用2楼lyhoo163的回复:1、不可引用动态窗体中的值(控件的值)会出现读取错误。
2、你可以设置一个全程变量,作为缓冲过度。动态窗体将需要的值写入缓冲变量。再读取。

目前看来没有更好的办法了,只能这样了,还好,用到的数据不多
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行