Delphi中从一个窗体传参数到另一个窗体的办法都有哪些?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Delphi中从一个窗体传参数到另一个窗体的办法都有哪些?相关的知识,希望对你有一定的参考价值。

参考技术A session相当于delphi全局变量,你可以用全局变量,但建议,最好方法,就是写个带参数的方法,调用时传入即可
如你可以在你要调用的这样写
private
FMyValue:
string;
public
procedure
SetParam(MyValue:
string);
.....
procdure
TForm1.SetParam(MyValue:
string);
begin
FMyValue
:=
MyValue;
end;
MyValue
就你要传入的参数,
值被传到FMyValue中;
调用:
Form1
:=
TForm1.Create(nil);
try
Form1.SetParam('你好,世界世界!');
Form1.Showmodual;
finally
Form1.Free;
end;
//这样,“你好,世界世界!”就被传到FMyValue中啦

C# winform中父窗体显示问题

在其他页面控制父窗体显示子窗体,代码写了,但执行有问题,求指教!

父窗体应该是第一个出现的吧。
你为什么还在click事件中,重新new了一个新窗体干嘛了?这样肯定有问题啊。

应该这样的吧:
pf = GetParentForm();//这个方法自己想办法解决,可以是把父窗体放在全局变量中,可以是缓存,可以是传值
Form2 f2 = new Form2();
F2.MdiParent = pf;
F2.show();追问

click事件是写在其他页面中,和父窗体一点关系都没有。
在其他页面中控制父窗体中显示子窗体

追答

你的几个页面,出现的顺序是什么?
如果控制页面是第一出现:
MDIParent1 p = new MDIParent1();
Form2 f = new Form2();
f.MdiParent = p;
f.Show();
p.Show();

其实窗体之间的关系你要先搞清楚,谁是父窗体,谁子窗体。如果父窗体已经存在了,就不需要再去new一个新的了,不然会报错。如果父窗体不存在,那你就必须new一个出来。

参考技术A 不一样要用parentform,你直接实例化form2,然后父窗体.controls.add(form2)也可以啊 参考技术B 在PARENTFORM 写一个方法
(PARENTFORM )f2.parentForm.方法

以上是关于Delphi中从一个窗体传参数到另一个窗体的办法都有哪些?的主要内容,如果未能解决你的问题,请参考以下文章

在delphi中窗体间怎么传递参数

Delphi中子窗体如何继承父窗体

delphi怎样从一个界面跳转到另一界面

delphi 子窗体如何继承主窗体的方法

WPF 子窗体 在 父窗体 中 打开,初学不懂,请指教

delphi 子窗体如何调用父窗体的方法