窗体继承时对象属性的修改问题
2004-05-29 23:44
393 查看
设计时,想定义一个通用的FORM1类,然后所有的FORM类都继承自FORM1类,其中FORM1是FORM的派生类。
使用的过程中发现,从FORM1派生的所有类中,FORM1中原有的控件都是只读的,不能修改其属性,感觉非常的不方便,于是,想到一个笨笨的办法:对需要修改的控件的属性定义不同的类属性,然后在派生类中对这些属性进行可视化设置,问题是解决了,可那多么的麻烦?
朋友说在DELPHI中没有这样的问题,于是使用DELPHI8来测试,呵呵,展转调试,是实现了(把这样的变量放到PUBLISHED层中),想想VS应该也是可以实现的,一试还真简单,不就是修改基类中控件的编辑属性(MODIFIER)为PROTECTED或PUBLIC就可以了吗?
想想,在类的继承中说的很明白,只有PROTECTED和PUBLIC类型的属性才可以在子类中修改,PRIVATE类型的都不可以访问了,怎么修改?看来,这蜗牛还真的是很笨。
另外一个奇怪的问题是:DELPHI8居然编译后的DEBUG版本是把调试信息跟DLL/EXE文件连接在一起的,不象VS的编译放在两个不同的文件中,用习惯了VS,偶尔弄下DELPHI,感觉怪怪的,而且,找了半天,不知道如何把项目编译成RELEASE版本的。幸好自己不用DELPHI,否则,估计今天已经疯了:)。
使用的过程中发现,从FORM1派生的所有类中,FORM1中原有的控件都是只读的,不能修改其属性,感觉非常的不方便,于是,想到一个笨笨的办法:对需要修改的控件的属性定义不同的类属性,然后在派生类中对这些属性进行可视化设置,问题是解决了,可那多么的麻烦?
朋友说在DELPHI中没有这样的问题,于是使用DELPHI8来测试,呵呵,展转调试,是实现了(把这样的变量放到PUBLISHED层中),想想VS应该也是可以实现的,一试还真简单,不就是修改基类中控件的编辑属性(MODIFIER)为PROTECTED或PUBLIC就可以了吗?
想想,在类的继承中说的很明白,只有PROTECTED和PUBLIC类型的属性才可以在子类中修改,PRIVATE类型的都不可以访问了,怎么修改?看来,这蜗牛还真的是很笨。
另外一个奇怪的问题是:DELPHI8居然编译后的DEBUG版本是把调试信息跟DLL/EXE文件连接在一起的,不象VS的编译放在两个不同的文件中,用习惯了VS,偶尔弄下DELPHI,感觉怪怪的,而且,找了半天,不知道如何把项目编译成RELEASE版本的。幸好自己不用DELPHI,否则,估计今天已经疯了:)。
相关文章推荐
- 继承窗体修改继承的控件属性
- Java 继承后修改的对象数据属性到底是谁的?
- vue 数组内对象修改属性页面不渲染问题
- 关于Javascript中通过实例对象修改原型对象属性值的问题
- PowerDesigner12.5修改数据库时,出现“对象无效。不允许有扩展属性,或对象不存在。SQLSTATE=37000” 的问题
- winform继承窗体,无法修改父窗体控件问题处理笔记
- 解决vue A对象赋值给B对象,修改B属性会影响到A的问题
- irisskin 给登录窗体修改皮肤,实例化主窗体时报“未将对象引用到对象的实例”(皮肤控件有问题)
- 转: javascript动态添加、修改、删除对象的属性和方法
- 窗体间利用属性(property)来传递值时应注意的问题
- ajax对象常用属性,事件,方法大小写问题的总结
- javascript动态添加、修改、删除对象的属性与方法
- JavaScript prototype属性与修改对象
- vue组件中的样式属性:scoped,解决在父组件中无法修改子组件样式问题
- 对象继承时重载方法的覆盖问题
- js修改input的type属性问题
- 【C#】解决devexpress新建的Form窗体没有继承默认样式的问题
- js修改input的type属性问题探讨
- Hibernate开发实践笔记--对象在set属性时更新了数据库问题
- js修改input的type属性问题(兼容所有浏览器,主要用于密码类的默认有提示文字的效果)