巨简单!来抢分!

shyacinth 2003-07-03 10:59:10
知道一个窗体的名字,怎么触发这个窗体的bitbtn的click事件
...全文
13 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
dnazj 2003-07-04
  • 打赏
  • 举报
回复
如果要实现这样的功能,太简单了。
所有的mdi子窗体全部都继承一个窗体类,这个窗体类提供一个虚拟方法作为接口,供各个子系统重定义。
譬如
TMyMDIForm = class(TForm)
function DoAdd: boolean; virtual;
....

调用的时候
if mdichildren[0] is TMyMDIForm then
mdichildren[0]).DoAdd;

当然你的窗体一定要继承TMyMDIForm,而不是默认的TForm。

我作的很多项目都用到这种方法。
reallike 2003-07-04
  • 打赏
  • 举报
回复
你!!!!!竟然抢我的!!!!!!

唉,既然他说了多态的方法。我说几个笨办法吧。

其实也无所谓本办法。

一个是类似于继承窗体类,建立窗体模板,然后许多窗体调用这个模板来建立。

别告诉我,你不会使用窗体模板。如果不知道,我可以提供给你一些代码。

另一个就是我说的,把新建按钮弄到主窗体上。

我很不喜欢在子窗体上都有新建的按钮,其实新建记录都差不多。

不如用主窗体的工具栏来调用更为直观,也更方便。

我知道你可能看了台湾人出的那本delphi进存销得书。
reallike 2003-07-03
  • 打赏
  • 举报
回复
你把你的代码贴出来好吗?

方法,大家都说得差不多。我也赞同。

但是,你总在空说,我们怎么给你找错误?
shyacinth 2003-07-03
  • 打赏
  • 举报
回复
sender as (frmmain.mdichildren[0].Name))
我说的好像是这样的写,但是不记得具体应该怎么写了,
报错Operator not applicable to this operand type
OO_is_just_P 2003-07-03
  • 打赏
  • 举报
回复
前提是 “窗体”已经被创建
调用就是一个过程
frmmain.mdichildren[0].BitbtnOnclick(nil);
shyacinth 2003-07-03
  • 打赏
  • 举报
回复
不行,这样他会报错bitbtn没有定义
OO_is_just_P 2003-07-03
  • 打赏
  • 举报
回复
procedure frmMain.button1onclick(serder:TObject);
Begin
//
end;
调用button1onclick(nil)
sz1008 2003-07-03
  • 打赏
  • 举报
回复
错了,应为
frmmain.mdichildren[0].Bitbtn.OnClick
sz1008 2003-07-03
  • 打赏
  • 举报
回复
frmmain.mdichildren[0].Bitbtn.Click
shyacinth 2003-07-03
  • 打赏
  • 举报
回复
不是这个意思,我是frmmain.mdichildren[0].Name这样得到的窗体名字
richall 2003-07-03
  • 打赏
  • 举报
回复
前提是 “窗体”已经被创建
if not Assigned(Form) then
form := TForm.Create(nil);
Form.Bitbtn.Click;
richall 2003-07-03
  • 打赏
  • 举报
回复
窗体.BitBtn.Click;
firetoucher 2003-07-03
  • 打赏
  • 举报
回复
1 form1.caption
2 bitbtn.onclick
JassonYe 2003-07-03
  • 打赏
  • 举报
回复
procedure TForm1.Button1Click(Sender: TObject);
begin
form2.show;
button2.onClick:=form2.Button1.OnClick;
end;
ahjoe 2003-07-03
  • 打赏
  • 举报
回复
前面的回答错误百出
shyacinth 2003-07-03
  • 打赏
  • 举报
回复
每个子窗体上面都有“新建”按钮,起不同作用
会就告诉我嘛,呵呵。。。。你这个人巨有意思,能告诉我你的QQ或者MSN嘛?
reallike 2003-07-03
  • 打赏
  • 举报
回复
早说嘛!这个我会!!!!!你这个人。说清楚大家才能解决问题。

你不说清楚,大家什么都做不了……

对了,是子窗体新建按钮?为什么不放到主窗体上。
shyacinth 2003-07-03
  • 打赏
  • 举报
回复
其实是这样的,我有个Mdi,要截获键盘F2按下事件,然后哪个子窗体在最上面,就响应哪个子窗体的“新增”按钮的按下事件。
唉,语文没有学好。。。对不起大家了:(

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧