delphi控件在设计期间是怎么控制的。
比如stringgrid控件在设计期的整个样子,当我们行列增加后,相应的表格行列也增加了。
这部分源码在哪里?是不是要与IDE交互

解决方案 »

  1.   

    所谓的设计期,其实跟运行期是类似的(但是多了很多IDE的控制),同样是需要把控件创建出来的。这样你应该明白了吧。
      

  2.   

    这部分源码我们看的到吗?VCL中
      

  3.   

    控件的重画事件中,或是触发了其它事件,都会重置相应的控件状态componentstate比如设计期状态:
    csdesigning...等等
      

  4.   

    哦,那这部分代码是IDE自动调用的吧,如果我们在设计组件的时候只要提供了设计期的paint代码,就行了吧
      

  5.   

    也不尽然都是这样,。你可以看一下TIMAG的代码,在设计期,它多画了一个虚线框,而运行期没有,这就是个例子
      

  6.   

    在你的delphi安装目录下的source/vcl目录下面有个grids.pas,这个文件里定义了TStringgrid控件,我用的是delphi7.0
      

  7.   

    你搜索一下“属性编辑器”或者看看《Delphi 5开发人员指南》第22章   高级组件技术
    22.3   编写属性编辑器 670
    22.3.1   派生出一个属性编辑器对象 670
    22.3.2   把属性当作文本来编辑 671
    22.3.3   注册新的属性编辑器 674
    22.3.4   用对话框来编辑属性 675
      

  8.   

    22.4   组件编辑器 677
    22.4.1   TComponentEditor 677
    22.4.2   一个简单的组件 678
    22.4.3   一个简单的组件编辑器 679
    22.4.4   注册组件编辑器 679
      

  9.   

    控件部分有设计期的接口。
    显示部分很多代码是使用运行期的。
    VCL各代接口不统一,具体你得问是哪一代的。