Chinaunix首页 | 论坛 | 博客
  • 博客访问: 522314
  • 博文数量: 252
  • 博客积分: 6057
  • 博客等级: 准将
  • 技术积分: 1635
  • 用 户 组: 普通用户
  • 注册时间: 2009-12-21 10:17
文章分类

全部博文(252)

文章存档

2013年(1)

2012年(1)

2011年(32)

2010年(212)

2009年(6)

分类: 项目管理

2010-08-25 16:56:05

  • 答案:

    我目前正在做一个项目,程序里的所有窗体几乎都是从一个基类窗体TViewTop直接或间接继承而来的(大多数继承关系超过2层),TViewTop 内 有一个Panel组件的成员变量:Panel1。

    现在由于需要对编码规范化,需要把Panel1更名为mc_Panel1。更改之后,所有派生窗体类也都显示发生了改变;编译也通过了(是Build,而 非Make),我对所有文件都进行了保存。但关闭工程之后,再打开这个工程的时候,发现有些派生类的窗体无法显示,需要重新指定mc_Panel1;对每 一个窗体类的panel重新指定之后,编译保存,再关闭,打开工程,又发现一些派生类窗体还是无法显示......如此这般,已经反复数次,很令我头疼 呵!

    我想:我们在用BCB做项目的时候,一定会遇到代码的规范化的问题。这就意味着以前的命名有很多要发生变化,但基类窗体内的组件对象如果命名发生了变化,那么派生类都要发生影响。

    明天项目组就要开始全面编码了,我对于整个项目的类框架的修改仍未完成,彻夜难眠。大家有什么经验可以提供给我?谢谢大家,拜托了!

    ---------------------------------------------------------------

    收到了您发的信息.实在对不起.我没有这方面的经验.我只能帮你up!!
    ---------------------------------------------------------------

    这种问题,我以前也碰到过,你打开components->install packages,把对话框中的所有设计包勾选(如果已经全部勾选了的话,我也不知道了……:-(),看看能不能解决问题

    ---------------------------------------------------------------

    你的问题,看来出在VCL可视化窗体继承对象的持久(Persistent)机制上面。虽然我也没有重复制造你的状况。但可以肯定是这样的。

    必须看到和单纯的C++对象继承的不同之处在于,继承窗体的.dfm文件中一样存在这样的继承.
    和普通的窗体对象不同的是一个继承的窗体其dfm文件的格式是明显不同的

    他们以inherit代替了通常的object....

    这样事情有点复杂了,很久以前我曾经观察过这样的情况。同样也发现了另人困惑的情况出现,一切仿佛都调节好了,保存再开始,他们恢复了以前的状况。。。

    呵呵,最后我不能给一个完美的解决方案。。。

    不过问题肯定出在这里。。。你可以去研究一下 

    在窗体上单击右键,然后选view as text...

    研究去吧。。。。
    ---------------------------------------------------------------

    BCB的这个问题一直烦恼了好久!
    后来我的做法就是:移动窗体或控件,再移回来.
    Save All,问题总算解决(Form多也麻烦!).
    ---------------------------------------------------------------

    我好像也遇到过,后来是Build它一下,哦,不是,是先删了dcu文件,然后Close project,哦,不是,是先close project,再delete *.obj,再builder一下。
    好像是这样。Zizizizi...

    特别是Frame,那家伙比继承窗体更讨厌,不过还是用上述方法可以搞死它。

    哦,删完*.obj后打开文件时,先打开最上层的窗体,然后改,再改下一层,这样改

    依稀记得是这样,因为遇到过,但马上搞定了,所以记不太清了。。。:)
    ---------------------------------------------------------------

    我遇到类似情况!

    处理方法就是:
    在你修改了基类窗体后,首先Ctrl+S,保存这个基类,然后"Open File",把所有继承自这个基类的窗体选中,"确定",
    打开过程中IDE会根据你的改动自动提示你对派生类进行修改,很方便。这个只局限
    于Form继承,自定义类不会提示。

    不知道对大家有没有帮助。

阅读(902) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~