簡體   English   中英

我可以阻止 XE8 添加 System.ImageList 嗎?

[英]Can I prevent XE8 from adding System.ImageList?

XE8 中的 Form 會自動添加使用System.ImageList 就像在embarcadero 網站上說的:

System.ImageList 包含 FireMonkey 和 VCL 代碼的通用代碼,實現了圖像列表的最基本的設備無關功能。 System.ImageList 包含支持圖像列表中圖像之間交互和使用它們的組件(如控件、菜單項等)的代碼。

但是我的同事大多還在使用XE7。 現在,他們需要在我提交后不斷刪除使用。 當我刪除它時,我的 XE8 會自動添加它。 當然,我可以在與其他編輯器一起提交之前刪除這些用途。 但是當我可以阻止 XE8 添加這部分代碼時,效率會更高。 或者 Firemonkey 和 VCL 會停止正常工作嗎?

所以我的問題是:我可以阻止 XE8 將System.ImageList添加到我在表單中的使用中嗎?

我可以阻止 XE8 將 System.ImageList 添加到我在表單中的使用中嗎?

不。IDE 會這樣做。 您的選擇包括:

  • 將單元包裝在條件中,以便 XE7 編譯器看不到它。
  • 創建一個虛擬的空單元,名為System.ImageList ,您在 .dpr 文件中列出它,再次包裝在條件中,以便它只能被 XE7 編譯器看到。
  • 為不同版本維護單獨的 .dproj 文件。 在 XE7 版本中,添加一個將System.ImageList映射到System的單元別名。
  • 在使用文本編輯器或腳本提交之前刪除單元。
  • 讓您的團隊標准化一個通用版本的 Delphi。

我個人會推薦后一種選擇。 請記住,您可以愉快地並排安裝多個 Delphi 版本,並在必要時為不同的項目使用不同的版本。 這在維護程序的發布分支時至關重要。

如果您根本無法做到這一點,那么單位別名可能是侵入性最小的選項。 我猜您沒有 .dproj 文件處於修訂控制之下,因為如果您這樣做了,那么您將面臨與 XE7 修改 XE8 版本類似的問題,反之亦然。 因此,如果 .dproj 文件不受版本控制,那么只為 XE7 用戶在本地進行修改應該很容易。 但是像這樣的技巧應該只被視為一個臨時的墊腳石,讓您在使用相同版本的 Delphi 之前保持漂浮狀態。

更一般地說,Embarcadero 目前非常頻繁地發布新版本。 升級需要時間。 你必須安裝,解決任何編譯問題,在編譯器下測試構建,並處理出現的任何缺陷。 您不必每次升級。 跳過一些很好。 這樣做會更有效率。 在我的工作場所,我們從 XE3 轉移到 XE7,並且不打算采用 XE8。 如果您確實進行了升級,請確保收益大於成本。

此代碼僅在 XE8 及更高版本中啟用 System.ImageList

  uses
      System.Classes, 
      System.SysUtils, 
      {$IF CompilerVersion >= 29}System.ImageList,{$IFEND}
      VCL.Forms,
      VCL.Dialogs, 
      VCL.StdCtrls,
      VCL.Controls, 
      VCL.Buttons, 
      Vcl.ExtCtrls, 
      Vcl.ImgList, 
      Vcl.ComCtrls, 
      Vcl.ToolWin;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM