我现在对borland公司的某些代码的做法感到非常奇怪,希望大家帮我解释下:
我曾经在对TProgressbar学习他的用法时候,在uses 块里只加了ComCtrls
此时ProgressBar1不识别FillColor属性,
只有当再在uses块里加个QComCtrls才会识别ProgressBar1有FillColor属性,
经过一翻思考发现在QComCtrls里 TProgressBar = class(TGraphicControl) ....
在ComCtrls里 TProgressBar = class(TWinControl).....
我真的感觉很奇怪,平常玩其他的语言时候,都是针对某个对象只要引用一个包或则叫头文件,而
在Delphi里有可能要引用几个单元才行,
那一次我为了找TProgressBar1的FillColor属性,发了好长时间,
我还真怕以后做开发时候也有类似的情况出现,
我想问下有经验丰富的各位出现我说的上面这种情况多吗?
怎么解释为什么Borland会针对TProgressBar作出在不同Unit里定义,恳请各位帮我解惑.

解决方案 »

  1.   

    ComCtrl和QComCtrl完全是两码事来的,2楼已给出答案了。现在除了C++外,基本任何语言都是单继承的,接口才可以多继承。而且楼主说的那种情况也不应该描述为“一个类继承多个父类”。
      

  2.   

    如果你们是购买的正版的DELPHI的话,你看看附带的资料上的架构图就知道了。一般来说架构图会有两张,一张是VCL,一张是CLX
    没有Q的VCL架构应用于Windows开发,加Q的CLX架构应用于Kylix多平台开发。两者的实现是不一样的。作为控件来说也会有一些不同的属性。
    奉劝一句,不要混合使用,不然会出现一些你意料以外的问题。
      

  3.   

    另外告诉你,不管是VCL还是CLX,都不支持多父类继承,要想实现多父类集成,你需要用接口才能实现。或者直接去用MFC
      

  4.   

    有时候写一个函数,结果不认识,找了半天才知道要先uses哪个