delphi 如何在动态创建窗体中修改窗体的组件参数

例如主窗体是FORM1,点击按钮后动态创建了几个窗体:FORM1,FORM2,FORM3,FORM4,FORM5,FORM6窗体数量不定,如果修改窗体FORM3的time... 例如主窗体是FORM1,点击按钮后动态创建了几个窗体:FORM1,FORM2,FORM3,FORM4,FORM5,FORM6窗体数量不定,如果修改窗体FORM3的timer的属性Enabled修改成TRUE(创建的动态窗体都有TIMER组件,默认Enabled:=FALSE) 展开
 我来答
lgk5942013
2013-06-14 · TA获得超过242个赞
知道答主
回答量:103
采纳率:0%
帮助的人:134万
展开全部
"例如主窗体是FORM1,点击按钮后动态创建了几个窗体:FORM1,..........."
这个问题虽简单,但附加的动作则需要注意!但你并没有描述清楚!
那么我就先针对你现在主要的"修改窗体FORM3的timer的属性Enabled修改成TRUE
"来解答
FORM3.timer.Enabled := true;
我猜你的问题没有这么简单,但需要你补充说明!
我如果没有估计错的话,你的需求可能需要用接口来完成!
你补充说明吧,我明天上来看到的话会跟进的!
更多追问追答
追问
程序问题解决,原理:通过FindWindow(nil,PChar(窗体名称));激活需要的窗体,后直接对组件修改
var myhwnd,:HWnd;
begin
myhWnd:=FindWindow(nil,PChar('货架一'));
if imyhWnd0 then ck_form.timer.Enabled := true;
end;
非常感谢,向你学习
追答
学习就谈不上,交流一下而已!
从整体来看,你的程序也许不小, 因为你有这么多FORM的设计,所以猜测,加上你代码中提到货架
从布局来看,你的程序显得松散.因为你的程序创建出来的窗口竟然要通过查找窗口句柄的
方式来确定窗口是否存在! 如果我第一条判断是错的,那么现在这条结论是可以忽略,反之则应该审视
一下自己的布局,别让程序越来越大后,越难看懂,届时维护是个烦人的问题,更别说增加功能!
当然,如果这个货架一的窗口不是同一个进程,是可以这样设计!
但也应该发送一条握手消息去确认一下,
互相都定义一个自定义消息,然后互相post一下,来确认!
或者货架一创建的时候就写一些已创建的记录,这样也是可以防止误动作!

总结:条理清晰,架构严谨,等等....都是一个大工程的良好基础! 纯属交流经验,不带学习...
xiaolilaoye
2013-06-15
知道答主
回答量:4
采纳率:0%
帮助的人:6170
展开全部
这种若干个form可以用一个TList管理起来,然后遍历TList来找到Form。更合理一点的是开发一个新累,如TMyFormList,提供查找方法来直接返回Form对象。用窗口标题来寻找是非常愚蠢的做法,因为要用system call,不论是封装性还是将来的兼容性都不佳,假设将来你修改了窗口标题,那就要改一大堆代码,一大堆!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式