“在多Form间,当存在这样的情形:Form1保存了某种数据,然后调用Form2显示该数据,请使用这样的通讯模式:Form1保存该数据到数据库中(可能通过Data Module的方法),然后直接调用Form2的某个方法去显示该数据,Form2的对应方法调用时只允许指定控制性信息(如记录PK),而不允许对Form2的控件属性直接操作。”
“当Form1调用Form2时,不可以直接对Form2中的控件属性进行存取操作,而必须通过相应公开的方法进行。因为从对象的角度来说,Form1无须知道Form2是如何处理这条调用(消息)的,而只需要知道Form2提供了这种调用(消息处理机制)即可。这样实际上也加强了功能和界面的分离,因为这里更加强调功能,而不关系界面的具体控件。”
请大侠指点如何理解并应用这两段话。谢谢。
6 个解决方案
#1
多写些代码自然就明白了,咬书本没什么意义的
#2
和它保持距离,避免发生关系.^_^
//其实,一楼的老大说的很对,这种东东,要做写代码,尽量让Code复用性强.
。。。。。。。。。。。。。。。。。。。。UP。。。。。
//其实,一楼的老大说的很对,这种东东,要做写代码,尽量让Code复用性强.
。。。。。。。。。。。。。。。。。。。。UP。。。。。
#3
当然,实践出真知。之所以在这里问,就是想知道高手们是如何看待和处理这些问题的,学习学习,少走些弯路。
#4
〉〉,Form1无须知道Form2是如何处理这条调用(消息)的,而只需要知道Form2提供了这种调用(消>>息处理机制)即可。
他的意思可能就是,如果form2要对form1的某些成员变量作修改,不要直接form1.xxx.xxx:=xxxx
而是form1提供一个public的过程供form2调用
比如老师上课对学生说回家帮妈妈做家务,具体家务是什么不用老师管,每个家庭自己决定
form2里面调用 form1.作家务,也可能调用form3.作家务,而作家务在form1或form3里自己定义,可以扫地,可以擦窗等等,也可以今天扫地明天改为擦窗~~~~这个有点像面向对象的多态~~~
他的意思可能就是,如果form2要对form1的某些成员变量作修改,不要直接form1.xxx.xxx:=xxxx
而是form1提供一个public的过程供form2调用
比如老师上课对学生说回家帮妈妈做家务,具体家务是什么不用老师管,每个家庭自己决定
form2里面调用 form1.作家务,也可能调用form3.作家务,而作家务在form1或form3里自己定义,可以扫地,可以擦窗等等,也可以今天扫地明天改为擦窗~~~~这个有点像面向对象的多态~~~
#5
和它保持距离,避免发生关系.^_^
#6
这句话真强。
#1
多写些代码自然就明白了,咬书本没什么意义的
#2
和它保持距离,避免发生关系.^_^
//其实,一楼的老大说的很对,这种东东,要做写代码,尽量让Code复用性强.
。。。。。。。。。。。。。。。。。。。。UP。。。。。
//其实,一楼的老大说的很对,这种东东,要做写代码,尽量让Code复用性强.
。。。。。。。。。。。。。。。。。。。。UP。。。。。
#3
当然,实践出真知。之所以在这里问,就是想知道高手们是如何看待和处理这些问题的,学习学习,少走些弯路。
#4
〉〉,Form1无须知道Form2是如何处理这条调用(消息)的,而只需要知道Form2提供了这种调用(消>>息处理机制)即可。
他的意思可能就是,如果form2要对form1的某些成员变量作修改,不要直接form1.xxx.xxx:=xxxx
而是form1提供一个public的过程供form2调用
比如老师上课对学生说回家帮妈妈做家务,具体家务是什么不用老师管,每个家庭自己决定
form2里面调用 form1.作家务,也可能调用form3.作家务,而作家务在form1或form3里自己定义,可以扫地,可以擦窗等等,也可以今天扫地明天改为擦窗~~~~这个有点像面向对象的多态~~~
他的意思可能就是,如果form2要对form1的某些成员变量作修改,不要直接form1.xxx.xxx:=xxxx
而是form1提供一个public的过程供form2调用
比如老师上课对学生说回家帮妈妈做家务,具体家务是什么不用老师管,每个家庭自己决定
form2里面调用 form1.作家务,也可能调用form3.作家务,而作家务在form1或form3里自己定义,可以扫地,可以擦窗等等,也可以今天扫地明天改为擦窗~~~~这个有点像面向对象的多态~~~
#5
和它保持距离,避免发生关系.^_^
#6
这句话真强。