delphi 如何在动态创建窗体中修改窗体的组件参数
例如主窗体是FORM1,点击按钮后动态创建了几个窗体:FORM1,FORM2,FORM3,FORM4,FORM5,FORM6窗体数量不定,如果修改窗体FORM3的time...
例如主窗体是FORM1,点击按钮后动态创建了几个窗体:FORM1,FORM2,FORM3,FORM4,FORM5,FORM6窗体数量不定,如果修改窗体FORM3的timer的属性Enabled修改成TRUE(创建的动态窗体都有TIMER组件,默认Enabled:=FALSE)
展开
2个回答
展开全部
"例如主窗体是FORM1,点击按钮后动态创建了几个窗体:FORM1,..........."
这个问题虽简单,但附加的动作则需要注意!但你并没有描述清楚!
那么我就先针对你现在主要的"修改窗体FORM3的timer的属性Enabled修改成TRUE
"来解答
FORM3.timer.Enabled := true;
我猜你的问题没有这么简单,但需要你补充说明!
我如果没有估计错的话,你的需求可能需要用接口来完成!
你补充说明吧,我明天上来看到的话会跟进的!
这个问题虽简单,但附加的动作则需要注意!但你并没有描述清楚!
那么我就先针对你现在主要的"修改窗体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一下,来确认!
或者货架一创建的时候就写一些已创建的记录,这样也是可以防止误动作!
总结:条理清晰,架构严谨,等等....都是一个大工程的良好基础! 纯属交流经验,不带学习...
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询