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