delphi 子窗体传值问题|子窗体调用

我想通过MDI窗体实现以下功能:<简化实例>主窗体:一个菜单menubutton1.子窗体A:一个EDIT1控件,一个BUTTON1按钮。子窗体B:一个EDIT1控件,一... 我想通过MDI窗体实现以下功能:
<简化实例>
主窗体: 一个菜单 menubutton1.
子窗体A: 一个EDIT1控件,一个BUTTON1按钮。
子窗体B: 一个EDIT1控件,一个BUTTON1按钮。
功能说明:
1.点击menubutton1,调出子窗体A。
2.在子窗体A上单BUTTON1按钮弹出子窗体B。 然后给子窗体B的EDIT1控件写入内容,之后点击子窗体B上的BUTTON按钮,让子窗体B的EDIT控件的值传给子窗体A的edit控件。并关闭子窗体B.
3.当子窗体A只弹出一个来时好传值,如果是两个或多个子窗体A,并且要求是“是哪个子窗体A的BUTTON1调出的子窗体B,就让子窗体B的edit值付给哪个子窗体A的edit."<有点像绕口令,请大家仔细看一下应该能明白>

只要实现第3步就可以了。
其实,实际例子是这样的。 我创建了一子窗体A,上边有一个GRID控件。然后创建一个子窗体B,通过在B上的EDIT来付值,用GRID的FILTER来过滤EDIT中会给的值从而实现在GRID中查找筛选数据的功能。
我是这么写的:
在子窗体B的按钮事件中写:"
子窗体A.grid.Filter:=字段+' like '+#39+'%'+trim(edit1.Text)+'%'+#39;
子窗体A.grid.Filted:=true;
.
如果只弹出一个子窗体A是行的.可是如果弹出多个.子窗体A的NAME就变成"子窗体A_1;子窗体A_2;子窗体A_3...这样的了.上边的代码就不行了."这里的代码我该怎么写.我是实在没法了...

我是新手,请各位高手帮忙!事成后加分!
难就难在怎么区别这些窗体名.并把值传过去..有详细代码请告诉我!!!
展开
 我来答
howlshadow
2009-11-07 · TA获得超过1381个赞
知道小有建树答主
回答量:1171
采纳率:100%
帮助的人:937万
展开全部
多个子窗体A,它的form name是不一样的,赋值时只要区别开窗体名就应该可以实现的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
木头家的柏修斯
2009-11-07 · TA获得超过692个赞
知道答主
回答量:157
采纳率:0%
帮助的人:0
展开全部
也不知道这样的例子对不对,反正我临时写的,你就试试吧。把这些代码有选择性的复制到你的代码编辑器里。自己还要改点东西的。。。
有问题找我+QQ:445159075,我最近也在学delphi哈~
interface
{
type
tform1=class(tform)
......
主窗口的定义和以下的事件都省略
}

type
tformb=class(tform)
edit1:tedit;
button1:tbutton;
procedure button1click(sender:tobject);
end;

type
tforma=class(tform)
grid1:tgrid;
edit1:tedit;
button1:tbutton;
procedure button1click(sender:tobject);
end;

var form1:tform1;

implementations
{$R.res}

procedure tform1.menubutton1click(sender:tobject);
var
forma:tforma;
begin
forma:=tforma.create(self);
forma.name:='子窗体a';
forma.parent:=self;
forma.show;
end;

procedure tforma.button1click(sender:tobject);
var
formb:tformb;
begin
formb:=tformb.create(self);
formb.name:='子窗体B';
formb.parent:=self;
formb.show;
end;

procedure tformb.button1click(sender:tobject);
begin
try
if parent is tforma then
with (parent as tforma) do
begin
edit1.text:=self.edit1.text;
grid1.filter:='';//因为你给的不全我就不写这个了
end;
finally
self.close;//也可以编程使之手动关闭
end;
//剩下的就是你自己原来的程序了
end;

参考资料: 《delphi面向对象编程思想》-刘艺著

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式