症状:
编译提示“Cannot load package 'pTCheckCombobox.' It contains unit 'uFMscrollBar', which is also contained in package 'pTMyDrvinfoList'.”。中文意思是:“不能加载组件包'pTCheckCombobox.' 因为它所包含的单元'uFMScrollBar', 已经包含在组件包'pTMyDrvinfoList'中. ”
如图:
原因:
如上图所示,工程窗体中使用了 'pTcheckCombobox' 和 'pTMyDrvinfoList' 2个自绘控件,在这2个控件中都有独立的uFMScrollBar.pas文件,并在uses引用了'uFMScrollBar';而这2个uFMScrollBar.pas代码是一模一样的。
解决办法:
把uFMScrollBar.pas从2个控件中提取出来,进行打包。
步骤(Delphi XE10):
1. 在合适的地方新建文件夹用于保存包文件,如:dTFMScrollBarCxb,然后把uFMScrollBar.pas复制到该文件夹中。
2. 打开Delphi新建包工程。File -> new - package,在右边的Project窗中 -> 选中Contains文件夹右键 -> Add 把刚刚的uFMScrollBar.pas添加进来。
3. 保存工程。 工具栏 -> 找到 Save All 点击 -> 为包取个合适的名称保存。如:pTFMScrollBarCxb。
4. 安装包。在右边的Project窗中 -> 选中pTFMScrollBarCxb包右键 -> Install。安装成功后包图标会变成黄色。
5. 使用。本例中 'pTcheckCombobox' 和 'pTMyDrvinfoList' 删除原来的uFMScrollBar.pas,然后在uses单元引用uFMScrollBar即可。




