翻譯|使用教程|編輯:鮑佳佳|2021-07-16 11:23:42.570|閱讀 709 次
概述:該套包提供了Windows開發人員所需要的11種最受歡迎的控件,包括Command Bars、Controls、Chart Pro、Calendar、Docking Pane、Property Grid、Report Control、Shortcut Bar、Syntax Edit、Skin Framework 和 Task Panel。本文主要講解ActiveX組件的配置和以及如何注冊。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
Xtreme Suite Pro是為Windows開發人員提供的用于ActiveX COM的用戶界面套包,創建包含完整的高度可自定義的用戶界面組件(包括Visual Studio樣式對接窗格和Office樣式功能區,工具欄和菜單),以使您的應用程序具有現代外觀。該套包提供了Windows開發人員所需要的11種最受歡迎的控件,包括Command Bars、Controls、Chart Pro、Calendar、Docking Pane、Property Grid、Report Control、Shortcut Bar、Syntax Edit、Skin Framework 和 Task Panel。
Codejock ActiveX 組件是獨立的 .OCX 文件,必須在將使用它們的目標計算機上復制和注冊。一個組件 (.OCX) 文件公開了一組使用它提供的控件所必需的類和接口。這些控件可以在任何開發環境和任何支持 ActiveX 技術的編程語言中使用。
使用 ActiveX 組件和相關語言相關問題的方法超出了本文的范圍,因為它對于每種編程語言都是獨一無二的。假定開發人員熟悉與他選擇的編程語言相關的 ActiveX 概念和最佳實踐。
本文解釋了以下相關問題:
每個 Codejock ActiveX 組件都有 3 種配置:
組件文件名反映其配置,例如:
選擇與您的主機應用程序兼容的正確配置很重要,因為 Windows 不允許在一個地址空間中混合模塊的位數,舊的編程語言不支持 Unicode 字符集。
可能的安裝選項是:
組件可以安裝到至少對安裝組件的所有潛在用戶都是只讀訪問的任何位置。
僅將組件文件復制到目標位置才能使用它是不夠的,它們必須注冊并包含許可證(在下一節中描述)。即使在開發機器上安裝 SuitePro 或獨立的 ActiveX 組件后,也必須在使用組件之前注冊必要的配置。
可以使用安裝包中包含的Registrator工具在開發機器上注冊組件。通常可以在以下位置找到它:%ProgramFiles(x86)%\Codejock Software\ActiveX\Xtreme SuitePro ActiveX v18.0.1\Bin\Registrator.exe
如果組件與應用程序一起分發,則必須在應用程序安裝期間注冊每個 .OCX 模塊。通常,這可以通過使用以管理員身份執行的%SystemRoot%\System32\regsvr32.exe工具來實現,例如使用此命令行進行靜默日歷注冊:
regsvr32.exe /s Codejock.Calendar.v18.0.1.OCX
或此命令行用于靜默注銷日歷組件:
regsvr32.exe /s /u Codejock.Calendar.v18.0.1.OCX
重要的是要了解應該注冊組件的目標機器可能已經注冊了相同版本的 Codejock 組件。雖然重新注冊相同版本的組件沒有壞處,但如果使用 Codejock 組件的應用程序被卸載,取消注冊組件可能會破壞依賴于這些組件的其他應用程序。有兩種方法可以解決此問題:
如果需要手動檢查 Codejock 組件注冊,可以使用來自 Windows SDK 的標準 OLE 查看工具:
每個 ActiveX 組件都有一組唯一的類、接口和類型庫 ID,與它注冊到系統相關。為了避免版本沖突,所有 Codejock 組件都會在每個新版本中重新生成它們的 ID。
雖然這確保了相同組件但不同版本的 2 個或多個安裝可以獨立地共存于同一系統中,但它使開發機器上的組件升級過程比僅安裝較新版本要復雜一些。根據開發環境和編程語言,這種情況可以通過不同的方式和不同的副作用來解決。
例如,項目加載期間的 Visual Basic 6 IDE 可以確定引用的組件有可用的更新版本,并提示自動升級現有組件。不幸的是,Microsoft Office 在 ActiveX 組件升級方面不如 Visual Basic 6 IDE 靈活,它不會提示自動升級,而是僅使用當前組件版本,或者如果控件不存在則根本不實例化控件,即使有更新的版本可用。在這種情況下,升級控件的唯一方法是刪除舊控件并插入新控件并重新存儲以前的屬性。
所有 Codejock ActiveX 組件都需要有有效的許可證才能運行。ActiveX 許可證不應與付費訂閱混淆,它只是一個小的文本文件 .LIC,每個 .OCX 文件必須與 .OCX 文件一起分發,這并不意味著任何額外費用。
當您將 Codejock 組件與您的應用程序一起分發時,有兩種方式可以包含許可證:
這是分發許可證的一種更可取且最簡單的方法。所需要做的只是將每個 .OCX 組件的 .LIC 文件復制到同一位置。使用此方法可確保組件獲取許可證(如果存在)。與將許可證嵌入應用程序不同,不會出現跨模塊問題。
例如,您將適用于 32 位和 64 位平臺的 Codejock Calendar ActiveX 組件作為應用程序的一部分安裝到%ProgramFiles(x86)%\<YourCompanyName>\<YourApplicationName>\bin目錄,則 bin 目錄應包含以下文件:
如果要包含 CommandBars 組件,還需要將Codejock.CommandBars.v18.0.1.LIC復制到同一位置。
在某些情況下,分發單獨的 .LIC 文件是不可能的,例如,當您為 Web 瀏覽器或任何其他類型的遠程客戶端開發 ActiveX 組件時。在這種情況下,唯一的選擇是將許可證文本嵌入到應用程序中。
在跨模塊場景中,這種方法應該非常謹慎地使用,并且容易出現意外行為,因為不同的環境以不同的方式管理此類場景。例如,如果您開發的 Visual Basic 應用程序不使用報表控件,而是使用另一個使用報表控件的自定義控件,則報表控件的許可證必須從宿主應用程序設置,而不是從自定義控制。在這種情況下,建議將許可證作為單獨的 .LIC 文件分發。
它的工作方式是,每個組件都公開自己的GlobalSettings具有 stringLicense屬性的類。此屬性必須設置為對應 .LIC 文件的前 3 個字符串的逐字值,直到第一個空行,包括所有空格和新行。使用 CRLF 作為新行分隔符(0Dh、0Ah字節序列或"\r\n"轉義序列)很重要,因為它在 .LIC 文件中使用。
必須在應用程序初始化流程中盡早分配該屬性。對于 Visual Basic,它可以是 的開頭Form_Initialize,對于 .NET 應用程序,它可以是主窗口構造函數的開頭。在對組件進行任何其他顯式或隱式調用之前分配此屬性很重要。
以下是如何執行此操作的示例:
Private Sub Form_Initialize() CommandBarsGlobalSettings.License = _ "CommandBars Control Copyright (c) 1998-2017 Codejock Software" & vbCrLf & _ "PRODUCT-ID: Codejock.CommandBars.ActiveX.v18.0" & vbCrLf & _ "VALIDATE-CODE: XXX-XXX-XXX-XXX" End Sub
在某些情況下,當引用 Codejock ActiveX 組件的項目在其創建位置以外的計算機上打開時,或者項目是使用舊版本的 Visual Studio 創建的,或者如果只有較新版本的組件可用,則形成初始化流程最后可能會因 COM 異常而失敗。可能有多種原因,最常見的一個是由另一個 Visual Studio 實例為 Codejock ActiveX 組件創建的互操作程序集與可用組件不匹配。以下步驟可能有助于解決此問題:
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自: