癥狀:
編譯提示“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即可。