我一直在使用 TFrames 和 ModelMaker 开发许多组件——我发现视觉设计/开发 + 继承 + ModelMaker 的组合非常引人注目。然后我注册这些带有注册单元的 TFrame 后代,它们从那里成为成熟的基于调色板的组件。我正在使用德尔福 2007。
在我了解这个过程的小“障碍”的早期,我发现通过引入 TFrame 后代流错误(通常在 IDE 中显示为表单,而不是帧)可以完全消除我遇到的一些问题我自己的“TBaseFrame”类从 TFrame 继承而没有 chanegs,然后使用 THAT 作为基类来开发组件(添加方法、属性等)。如果我将属性和方法等添加到直接从 TFrame 继承的类/框架中,则 dfm 文件流式传输经常会感到困惑。
所以,总的来说,它工作得很好,一旦我解决了问题。
不过,昨天我遇到了一个新问题:
我将生成的组件安装在包集中,以有意义的方式分组(即,应用程序 1 的所有“面板”都在一个包中,应用程序 2 的许多“查看器”在另一个包中,等等)。
如果包中不包含 TBaseFrame 类,则继承的 TFrame-descendant 组件将不会加载到 IDE 中。但是,如果我将 TBaseFrame 添加到包中,当它在多个包中具有相同的源 PAS 文件时,我会遇到 Delphi 报告的冲突。
我可以将所有基于框架的组件放入一个巨大的包中,但我真的非常不喜欢这样做,因为我可以清楚地看到随着时间的推移会变得太大/失控,考虑到多少套的性质我打算开发。有没有其他方法可以解决这个冲突?
更新——有一个技巧可以让它“正常”工作——一定要阅读下面的评论。