cxgrid的create问题

liuchcn 2008-04-19 11:40:29
我想从tcxgrid中生成一个新的组件,希望每次建立它时,缺省是生成 bandview,而不是原来的tableview,但是在

constructor create(AOwner:tcomponent);override;
begin
inherited create(aowner);
application.messagebox(pchar(inttostr(self.ViewCount)),'aaa');
end;

中,访问不了view的,这个时候,viewcount还是0,好象在这个时候还没有创建的,是怎么回事呢?

谢谢
...全文
176 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
knowledge_Is_Life 2008-04-30
  • 打赏
  • 举报
回复
不知,帮顶
CCC的 2008-04-20
  • 打赏
  • 举报
回复
声明一个 bandview,然后在重载CREATE的时候赋给CXGRID?
GoldShield 2008-04-20
  • 打赏
  • 举报
回复
楼主开 了两个贴?
那个贴不是大家都在讨论么?
zhao_yong 2008-04-20
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 GoldShield 的回复:]
楼主开 了两个贴?
那个贴不是大家都在讨论么?
[/Quote]
多開點不就可以多得到點!
hsmserver 2008-04-19
  • 打赏
  • 举报
回复
查查代码看它是什么时候生成View的,重写一下
blazingfire 2008-04-19
  • 打赏
  • 举报
回复
变通一下,在Loaded方法里写你需要执行的代码:
type
TcxGridEx = class(TcxGrid)
protected
procedure Loaded;override;//覆盖加载组件的方法
end;

implementation
procedure TcxGridEx.Loaded;
begin
inherited;
application.messagebox(pchar(inttostr(self.ViewCount)),'aaa');
end;
liuchcn 2008-04-19
  • 打赏
  • 举报
回复
如果重写的话,是不是要把它原来的那个unit复制到自己的程序中,编译时,就用自己的这个unit优先编译?
这样的话,如果以后tcxgrid升级了,是不是又要重新做这步工作?用重载行不行?

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧