專利名稱:一種開發(fā)控件的方法及裝置的制作方法
技術領域:
本發(fā)明涉及計算機領域,特別涉及一種生成及修改控件的方法及裝置。
背景技術:
在軟件開發(fā)中,控件是對數據和方法的封裝,控件可以有自己的屬性和方法,屬性 是控件數據的簡單訪問者,方法則是控件的一些簡單而可見的功能。在Windows開發(fā)環(huán)境 中提供了多種公共控件,例如編輯框、列表框、滾動條及復選框等,其可為開發(fā)者封裝重復 的工作,簡化開發(fā)者的開發(fā)過程。然而Windows所提供的控件是有限的,隨著技術的發(fā)展,軟件開發(fā)者對控件的需 求日益多樣化,因此,僅使用現有的Windows控件不能滿足軟件開發(fā)過程中的各式各樣的 開發(fā)需求。
發(fā)明內容
本發(fā)明實施例提供一種生成及修改控件的方法及裝置,用以滿足軟件開發(fā)過程中 多樣化的控件需求。本發(fā)明實施例提供的具體技術方案如下一種開發(fā)控件的方法,包括獲取指定的至少兩個基礎元素類,該至少兩個基礎元素類分別包含變量的名稱及 變量的類型,還包括對應的基礎元素屬性;按照所述至少兩個基礎元素類對應的變量名稱、變量類型及基礎元素屬性,分別 生成相應的基礎元素實例;根據獲得的基礎元素實例組建生成相應的控件。在上述技術方案中,在獲取指定的至少兩個基礎元素類設置之前,對所述至少兩 個基礎元素類進行預定義,所述預定義包括設置所述至少兩個基礎元素類包含的變量的 名稱及變量的類型,以及設置所述至少兩個基礎元素類對應的基礎元素屬性;進一步地,還 需設置各基礎元素屬性的索引,通過該索引可獲得相應的基礎元素屬性的標識和類型。
一種修改控件的方法,包括獲得采用上述開發(fā)控件的方法生成的控件,并將其分解為至少兩個基礎元素實 例;遍歷所述至少兩個基礎元素實例對應的實體元素屬性;,并根據指示修改所述實體元素屬性的賦值。一種開發(fā)控件的裝置,包括獲取單元,用于獲取指定的至少兩個基礎元素類,該至少兩個基礎元素類分別包 含變量的名稱及變量的類型,還包括對應的基礎元素屬性;第一處理單元,用于按照所述至少兩個基礎元素類對應的變量名稱、變量類型及 基礎元素屬性,分別生成相應的基礎元素實例;
第二處理單元,用于根據獲得的基礎元素實例組建生成相應的控件。上述開發(fā)控件的裝置中進一步包括設置單元,用于在獲取指定的至少兩個基礎元素類設置之前,對所述至少兩個基 礎元素類進行預定義,所述預定義包括設置所述至少兩個基礎元素類包含的變量的名稱 及變量的類型,以及設置所述至少兩個基礎元素類對應的基礎元素屬性;進一步地,還需設 置各基礎元素屬性的索引,通過該索引可獲得相應的基礎元素屬性的標識和類型。一種修改控件的裝置,包括分解單元,用于獲得采用上述開發(fā)控件的裝置生成的控件,并將其分解為至少兩 個基礎元素實例;處理單元,用于遍歷所述至少兩個基礎元素實例對應的實體元素屬性;修改單元,用于根據指示修改所述實體元素屬性的賦值。本發(fā)明實施例中,由于對用戶界面中的控件進行了架構預定義,聲明了控件包含 的基礎元素類,以及各基礎元素類實例化后的相互關系,那么,開發(fā)者可以根據自身需求靈 活地使用各種基礎元素類組建生成相應的控件,不再受制于現有的Window控件的數量和 種類,滿足軟件開發(fā)過程中多樣化的控件需求。另一方面,即便僅有該控件的文件而沒有界 面源程序代碼,管理人員也可以獲知該控制的內部架構(如,控件包含的各基礎元素實例 對應的實體元素屬性的標識及類型等等),從而可以有針對性地對該控件中的實體元素屬 性進行編輯修改,進而降低了控件生成及后期維護的復雜度,節(jié)約了二次開發(fā)的成本。
圖1為本發(fā)明實施例中控件的開發(fā)流程圖;圖2為本發(fā)明實施例中控件的修改流程圖;圖3為本發(fā)明實施例中用于開發(fā)控件的裝置功能結構示意圖;圖4為本發(fā)明實施例中用于修改控件的裝置功能結構示意圖。
具體實施例方式為了滿足軟件開發(fā)過程中日益多樣化的控件需求。本發(fā)明實施例中,重新定義了 用于構成軟件用戶界面中的控件的基礎元素類,所謂基礎元素類是指面向對象編程中的 “類(Class) ”概念,類是對某種類型的對象定義變量和方法的原型,類表示對一類具有共同 特征的事物的抽象。定義基礎元素類的過程包括定義該基礎元素類中需要用到的變量的名 稱及變量的類型(字符型,整數型)等,還需要設置基礎元素類對應的基礎元素屬性,以及 設置所述基礎元素屬性的索引,通過該索引可獲得相應的基礎元素屬性的標識和類型。例 如,本發(fā)明實施例中使用C++所編寫的定義“文本”基礎元素類的代碼如下class TextObject:public BaseRenderObject (定義 “TextObject” 類){public:TextOb ject (const char*id = NULL);(定義“文本”基礎元素類的名稱為 “TextObject”)virtual TextOb ject (void);
6
public bool SetTextFont (XL_F0NT_HANDLE hFont);(設置基礎元素屬性“字體”)XL_F0NT_HANDLE GetTextFont();bool SetTextColor (XL_Color crText);(設置基礎元素屬性“字體顏色”)XL_Color GetTextColor();bool SetBknColor (XL_Color crBkn);(設置基礎元素屬性“背景顏色”)XL_Color GetBknColor ();}實際應用中,基礎元素類至少包括圖片元素類或/和文本元素類,為了更加 方便的讓開發(fā)者開發(fā)出其想要的控件,也可定義更多的基礎元素類,例如邏輯控件類 (ControlObject)、文本輸入框類(EditObject)、顏色填充類(FillObject)、真窗口類 (RealObject)、紋理類(TextureObject)、矢量類(VectorObject)等等。根據基礎元素類, 可以構建出多種控件,例如,滾動條控件,選擇框控件、文本編輯框控件等等。每個基礎元素 類均可以包含多個基礎元素屬性,例如,圖片元素類的基礎元素屬性可包括位置信息、可見 程度、遮蓋順序和繪圖模式(圖片按窗體大小拉伸顯示或是按窗體大小裁剪掉多余部分進 行顯示)等等,可以是其中的一種或任意組合;而文本元素類的基礎元素屬性可包括字體 類型、字體大小、字體顏色和字體陰影效果等等,也可以是其中的一種或任意組合。將各基 礎元素類按照其基礎元素屬性及相互之間的邏輯關系進行排列,即可以完成控件的構成, 然后將構成的控件嵌入至目標軟件界面中,即可完成軟件界面的構成。下面結合附圖對本發(fā)明優(yōu)選的實施方式進行詳細說明。參閱圖1所示,本發(fā)明實施例中,基于預先開發(fā)的基礎元素類,用于開發(fā)控件的裝 置(稱為控件開發(fā)裝置)組建生成控件的詳細流程如下步驟100 獲取指定的至少兩個基礎元素類,該至少兩個基礎元素類分別包含變 量的名稱及變量的類型,還包括對應的基礎元素屬性;執(zhí)行步驟100之前,需對上述至少兩個基礎元素類進行預定義,所述預定義,包 括設置所述至少兩個基礎元素類包含的變量的名稱及變量的類型;設置所述至少兩個基礎元素類對應的基礎元素屬性;較佳地,為了便于在二次開發(fā)過程中能夠獲取所開發(fā)控件中包含的基礎元素屬 性,設置所述至少兩個基礎元素類對應的基礎元素屬性后,還需要進一步設置各基礎元素 屬性的索引,通過該索引可獲得相應的基礎元素屬性的標識和類型。所述對上述至少兩個基礎元素類進行預定義的過程通??梢允孪韧瓿?,且基礎元 素類一旦定義后,即可供控件開發(fā)直接使用,無需進行重復定義,控件開發(fā)者可直接使用預 先定義好的基礎元素類進行控件開發(fā)。所以在控件開發(fā)過程中,可以不包括預定義基礎元 素類的步驟。步驟110 按照所述至少兩個基礎元素類對應的變量名稱、變量類型及基礎元素 屬性,分別生成相應的基礎元素實例;實際應用中,所謂生成基礎元素實體即是將基礎元素類按照其基礎元素屬性實例 化,即是在使用類(Class)創(chuàng)建對象的過程,在內存中為各基礎元素屬性分配相應的地址,以生成相應的實體對象,具體為按照上述至少兩個基礎元素類包含的變量,分別創(chuàng)建實體對象,再按照上述至少兩個基礎元素類對應的基礎元素屬性,分別設置相應的實體對象的 實體元素屬性;那么,具有實體元素屬性的實體對象即是最終所需的基礎元素實例。按照上述方式執(zhí)行步驟110后,可以在軟件界面中實現一個靜態(tài)控件(即在用戶 操作過程中狀態(tài)不發(fā)生改變的控件,如,在軟件界面中顯示一個文本提示標簽,這個文本提 示標簽在軟件使用過程中不發(fā)生變化),如果要實現動態(tài)控件,例如,一個按鈕想實現如下 功能當用戶鼠標移動至該按鈕上時,改變按鈕顏色,當點擊按鈕時,按鈕改變外觀形狀為 凹陷等等,則較佳地,在按照基礎元素類對應的基礎元素屬性設置相應的實體對象的實體 元素屬性后,進一步設置各實體對象對應的方法和事件。如,針對圖片元素實例及文本元素 實例設置相應的方法及事件,事件可以包括各種觸發(fā)圖片元素實例及文本元素實例狀態(tài)改 變的條件,如,鼠標點擊對象、指針移動至對象上等等,方法則可以包括在各類事件發(fā)生時, 圖片元素實例及文本元素實例的屬性變化方式,例如,當鼠標指針移動至按鈕上時,改變按 鈕的顏色為金色以突出顯示。步驟120 根據獲得的基礎元素實例組建生成相應的控件。在執(zhí)行步驟120時,需要確定各基礎元素實例之間的相對位置關系和邏輯關系, 再分別為各基礎元素實例對應的實體元素屬性賦值,并基于賦值后的各基礎元素實例生成 相應的控件。其中,所謂的相對位置關系是指兩種基礎元素實例的相對的坐標關系,例如, 文本元素實例的位置位于圖片元素實例的中間、頂部、底部、靠左或靠右等等,所謂的邏輯 關系是指兩種基礎元素實例之間的遮蓋關系,例如,文本元素實例會位于圖像元素實例的 上層。基于上述實施例,在為各基礎元素實例賦值時,可使用java、Lua等腳本語言從程 序的數據段獲取數據,其中,Lua是一個小巧的腳本語言,其設計目的是為了嵌入應用程序 中,從而為應用程序提供靈活的擴展和定制功能。例如,獲取文本元素實例的字體類型、字 體大小、獲取圖片元素實例的位置信息、可見程度等等。為基礎元素實例賦值,并基于賦值后的各基礎元素實例生成相應的控件之后,可 以創(chuàng)建渲染器render (創(chuàng)建渲染器主要是分配渲染器所需要的緩存位圖資源),并采用該 渲染器遍歷賦值后的各基礎元素實例,以及通過所述渲染器按照各基礎元素實體的相對位 置關系和邏輯關系,繪制相應的位圖,這樣就可以將生成的控件輸出至顯示屏呈現給用戶 了。上述流程可以采用XML編寫代碼實現,例如〈control class=" Thunder. Button" ><attr_def><attr name = " NormalBkgID〃 type=" string" /><attr name =" DownBkgID" type =" string" /><attr name =" DisableBkgID" type=" string" /><attr name = " HoverBkgID" type = " string" /><default>false</default></attr><attr name = " ChangeStateffhenLeave" type=" bool〃 ><default>true</default) </attr> </attr_def>
<method_def>(定義方法)
<SetState file = " Button, xml. lua" func = " SetState" /> <SetText file = " Button, xml. lua" func = 〃 SetText" /> <SetTextFont file = " Button, xml. lua" func = " SetTextFont" /> </method_def> <event_def> <0nClick/> <OnButtonMouseMove> <param> <int/> <int/> </param> </OnButtonMouseMove> <OnButtonMouseLeave> <param> <int/> <int/> </param> </OnButtonMouseLeave> </event def> <objtemplate>
〈children〉(建立邏輯關系)
<obj id =“ button, bkg" class = " TextureObject〃 > <attr>
<left>0</left>(建立相對位置關系) <top>0</top>
<width>father. width</width> <height>father. height</height> </attr> <children>
<obj id = “ button, oldbkg" class = “ TextureObject" > <attr>
<left>0</left> <top>0</top>
<width>father. width</width> <height>father. height</height><alpha>0</alpha></attr>〈children〉<objid=" button· Ii 曲t" class=" SmgeObject" >(生成圖片對象實例)<attr><left>0</left><top>0</top><width>father. width</width><height>23</height><zorder>0</zorder></attr></obj><obj id = " button, text" class = " TextObject〃 ><attr><left>0</left><top>l</top><width>father. width</width><height>father. height_l</height><font>newtas k. default. font</font><halign>center</halign><valign>center</valign><texttype>gdi</texttype><zorder>50</zorder></attr></obj>〈/children〉</obj>〈/children〉</obj>〈/children〉<eventlist><event name=" OnLButtonDown" file=" Button, xml. Iua" func =" OnLButtonDown" /><event name=" OnLButtonUp" file=" Button, xml. Iua 〃 func = " OnLButtonUp 〃 />〈event name=" OnMouseMove" Move=" Button, xml. Iua" func=" OnMouseMove" /><event name=" OnMouseLeave" file=" Button, xml.lua〃 func = “ OnMouseLeave “ />〈event naiB = " ChBind" file = " Buttoa xml. lua" fmc = " ChBind" /></eventlist></objtemplate>〈/control〉基于上述流程生成所需的控件后,由于可以解析出控件的內部結構,因此,可以在 后續(xù)二次開發(fā)過程中,對控件進行局部修改,例如,對于一個按鈕控件,可修改其按鈕背景 顏色,或按鈕上文字的字體等等而無需重新開發(fā)控件代碼。基于上述實施例,參閱圖2所示,本發(fā)明實施例中,用于修改控件的裝置(稱為控 件修改裝置)對開發(fā)生成的控件進行修改的詳細流程如下步驟200 獲得控件開發(fā)裝置按照步驟100-步驟120生成的控件,并將其分解為 至少兩個基礎元素實例。由于控件開發(fā)裝置是基于基礎元素類生成的,因此,可以在后續(xù)二次開發(fā)過程中 進行解析,從而獲得組成控件的基礎元素實例。例如,將軟件界面中的控件解析為圖片元素實例和文本元素實例,該圖片元素實 例及文本元素實例基于預設的基礎元素類生成,該預設的基礎元素類包括圖片元素類及文 本元素類,各個基礎元素類包含了多個基礎元素屬性,因此該圖片元素實例及文本元素實 例也包含了根據基礎元素屬性生成的對應的實體元素屬性。圖片元素實例對應的實體元 素屬性有圖片內容及位置信息,文本元素實例對應的實體元素屬性有文本內容及位置信 息,圖片元素實例及文本元素實例之間根據其相對位置關系和邏輯關系確定相應的父子關 系;步驟210 遍歷所述至少兩個基礎元素實例對應的實體元素屬性,并根據指示修 改所述實體元素屬性的賦值。具體為所述處理單元遍歷所述至少兩個基礎元素實例對應的實體元素屬性時, 先獲得所述至少兩個基礎元素實體對應的屬性索引,并根據所述屬性索引確定對應的實體 元素屬性的標識和類型,以及根據獲得的實體元素屬性的標識和類型,對相應的實體元素 屬性進行重新賦值。而在修改實體元素屬性的賦值時,可以對其相對位置關系、元素內容 (如圖片內容、文本內容)等等進行重新賦值?;谏鲜鰧嵤├?,參閱圖3所示,本發(fā)明實施例中,控件開發(fā)裝置包括獲取單元 10、第一處理單元11和第二處理單元12,其中,獲取單元10,用于獲取指定的至少兩個基礎元素類,該至少兩個基礎元素類分別 包含變量的名稱及變量的類型,還包括對應的基礎元素屬性;第一處理單元11,用于按照所述至少兩個基礎元素類對應的變量名稱、變量類型 及基礎元素屬性,分別生成相應的基礎元素實例;第二處理單元12,用于根據獲得的基礎元素實例組建生成相應的控件。如圖3所示,本發(fā)明實施例中,控件開發(fā)裝置內進一步包括設置單元13,用于在獲 取指定的至少兩個基礎元素類之前,對其進行預定義,所謂預定義包括設置所述至少兩個 基礎元素類包含的變量的名稱及變量的類型,設置所述至少兩個基礎元素類對應的基礎元 素屬性;進一步地,還需設置各基礎元素屬性的索引,通過該索引可獲得相應的基礎元素屬性的標識和類型。本實施例中,第一處理單元11按照所述至少兩個基礎元素類對應的基礎元素屬 性,分別生成相應的基礎元素實例時,按照所述至少兩個基礎元素類包含的變量,分別創(chuàng)建 實體對象,并按照所述至少兩個基礎元素類對應的基礎元素屬性,分別設置相應的實體對 象的實體元素屬性。第一處理單元11在按照所述至少兩個基礎元素類對應的基礎元素屬性,分別設 置相應的實體對象的實體元素屬性后,進一步設置各實體對象的對應的方法和事件。第一處理單元11按照所述至少兩個基礎元素類對應的基礎元素屬性,分別生成 相應的基礎元素實例后,第二處理單元12根據獲得的基礎元素實例組建生成相應的控件 時,確定各基礎元素實例之間的相對位置關系和邏輯關系,以及分別為各基礎元素實例對 應的實體元素屬性賦值,并基于賦值后的各基礎元素實例生成相應的控件。第二處理單元12基于賦值后的各基礎元素實例生成相應的控件后,創(chuàng)建渲染器, 并采用該渲染器遍歷賦值后的各基礎元素實例,以及通過所述渲染器按照各基礎元素實體 的相對位置關系和邏輯關系,繪制相應的位圖。這樣便可以將生成的控件通過用戶接口輸 出至顯示屏,以呈現給用戶。參閱圖4所示,本發(fā)明實施例中,控件修改裝置包括分解單元20、處理單元21和修 改單元22,其中,分解單元20,用于獲得采用控件開發(fā)裝置生成的控件,并將其分解為至少兩個基 礎元素實例;處理單元21,用于遍歷所述至少兩個基礎元素實例對應的實體元素屬性;修改單元22,用于根據指示修改所述實體元素屬性的賦值。本發(fā)明實施例中,處理單元21遍歷所述至少兩個基礎元素實例對應的實體元素 屬性時,先獲得所述至少兩個基礎元素實體對應的屬性索引,并根據所述屬性索引確定對 應的實體元素屬性的標識和類型,以及根據獲得的實體元素屬性的標識和類型,對相應的 實體元素屬性進行重新賦值。上述用于控件開發(fā)裝置和控件修改裝置可以作為兩個獨立的裝置分別設置,也可 以作為兩個功能模塊集成在同一設備內,可以根據實際環(huán)境需求自行設置,在此不予贅述。綜上所述,本發(fā)明實施例中,由于對用戶界面中的控件進行了架構預定義,聲明了 控件包含的基礎元素類,以及各基礎元素類實例化后的相互關系,那么,開發(fā)者可以根據自 身需求靈活地使用各種基礎元素類組建生成相應的控件,不再受制于現有的Window控件 的數量和種類,滿足軟件開發(fā)過程中多樣化的控件需求。另一方面,即便僅有該控件的文件 而沒有界面源程序代碼,管理人員也可以獲知該控制的內部架構(如,控件包含的各基礎 元素實例對應的實體元素屬性的標識及類型等等),從而可以有針對性地對該控件中的實 體元素屬性進行編輯修改,進而降低了控件生成及后期維護的復雜度,節(jié)約了二次開發(fā)的 成本。顯然,本領域的技術人員可以對本發(fā)明進行各種改動和變型而不脫離本發(fā)明的精 神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權利要求及其等同技術的范圍 之內,則本發(fā)明也意圖包含這些改動和變型在內。
權利要求
一種開發(fā)控件的方法,其特征在于,包括獲取指定的至少兩個基礎元素類,該至少兩個基礎元素類分別包含變量的名稱及變量的類型,還包括對應的基礎元素屬性;按照所述至少兩個基礎元素類對應的變量名稱、變量類型及基礎元素屬性,分別生成相應的基礎元素實例;根據獲得的基礎元素實例組建生成相應的控件。
2.如權利要求1所述的方法,其特征在于,在獲取指定的至少兩個基礎元素類之前,對 所述至少兩個基礎元素類進行預定義,所述預定義包括設置所述至少兩個基礎元素類包含的變量的名稱及變量的類型;設置所述至少兩個基礎元素類對應的基礎元素屬性。
3.如權利要求2所述的方法,其特征在于,設置所述至少兩個基礎元素類對應的基礎 元素屬性后,進一步設置各基礎元素屬性的索引,通過該索引可獲得相應的基礎元素屬性 的標識和類型。
4.如權利要求1所述的方法,其特征在于所述基礎元素類包括圖片元素類和文本元素類;或所述基礎元素類包括圖片元素類和文本元素類,還包括邏輯控件類、文本輸入框類、顏 色填充類、真窗口類、紋理類、矢量類中的一種或任意組合。
5.如權利要求4所述的方法,其特征在于,所述基礎元素類為圖片元素類時,該基礎元 素類對應的基礎元素屬性包括位置信息、可見程度、遮蓋順序和繪圖模式中的一種或任意 組合。
6.如權利要求4所述的方法,其特征在于,所述基礎元素類為文本元素類時,該基礎元 素類對應的基礎元素屬性包含字體類型、字體大小、字體顏色和字體陰影效果中的一種或 任意組合。
7.如權利要求1-6任一項所述的方法,其特征在于,按照所述至少兩個基礎元素類對 應的基礎元素屬性,分別生成相應的基礎元素實例,包括按照所述至少兩個基礎元素類包含的變量,分別創(chuàng)建實體對象;按照所述至少兩個基礎元素類對應的基礎元素屬性,分別設置相應的實體對象的實體 元素屬性。
8.如權利要求7所述的方法,其特征在于,在按照所述至少兩個基礎元素類對應的基 礎元素屬性,分別設置相應的實體對象的實體元素屬性后,進一步設置各實體對象的對應 的方法和事件。
9.如權利要求7所述的方法,其特征在于,按照所述至少兩個基礎元素類對應的基礎 元素屬性,分別生成相應的基礎元素實例后,在根據獲得的基礎元素實例組建生成相應的 控件時,包括確定各基礎元素實例之間的相對位置關系和邏輯關系;分別為各基礎元素實例對應的實體元素屬性賦值,并基于賦值后的各基礎元素實例生 成相應的控件。
10.如權利要求9所述的方法,其特征在于,所述基于賦值后的各基礎元素實例生成相 應的控件之后,還包括創(chuàng)建渲染器,并采用該渲染器遍歷賦值后的各基礎元素實例; 通過所述渲染器按照各基礎元素實體的相對位置關系和邏輯關系,繪制相應的位圖。
11.一種修改控件的方法,其特征在于,包括獲得采用如權利要求3所述的方法生成的控件,并將其分解為至少兩個基礎元素實例;遍歷所述至少兩個基礎元素實例對應的實體元素屬性,并根據指示修改所述實體元素 屬性的賦值。
12.如權利要求11所述的方法,其特征在于,所述遍歷所述至少兩個基礎元素實例對 應的實體元素屬性,并根據指示修改所述實體元素屬性的賦值,包括獲得所述至少兩個基礎元素實例對應的屬性索引;根據所述屬性索引確定對應的實體元素屬性的標識和類型;根據獲得的實體元素屬性的標識和類型,對相應的實體元素屬性進行重新賦值。
13.一種開發(fā)控件的裝置,其特征在于,包括獲取單元,用于獲取指定的至少兩個基礎元素類,該至少兩個基礎元素類分別包含變 量的名稱及變量的類型,還包括對應的基礎元素屬性;第一處理單元,用于按照所述至少兩個基礎元素類對應的變量名稱、變量類型及基礎 元素屬性,分別生成相應的基礎元素實例;第二處理單元,用于根據獲得的基礎元素實例組建生成相應的控件。
14.如權利要求13所述的裝置,其特征在于,進一步包括設置單元,用于在獲取指定的至少兩個基礎元素類之前,對所述至少兩個基礎元素類 進行預定義,所述預定義包括設置所述至少兩個基礎元素類包含的變量的名稱及變量的 類型,以及設置所述至少兩個基礎元素類對應的基礎元素屬性。
15.如權利要求14所述的裝置,其特征在于,所述設置單元設置所述至少兩個基礎元 素類對應的基礎元素屬性后,進一步設置各基礎元素屬性的索引,通過該索引可獲得相應 的基礎元素屬性的標識和類型。
16.如權利要求13所述的裝置,其特征在于 所述基礎元素類包括圖片元素類和文本元素類;所述基礎元素類包括圖片元素類和文本元素類,還包括邏輯控件類、文本輸入框類、顏 色填充類、真窗口類、紋理類、矢量類中的一種或任意組合。
17.如權利要求16所述的裝置,其特征在于,所述基礎元素類為圖片元素類時,該基礎 元素類對應的基礎元素屬性包括位置信息、可見程度、遮蓋順序和繪圖模式中的一種或任思組合。
18.如權利要求16所述的裝置,其特征在于,所述基礎元素類為文本元素類時,該基礎 元素類對應的基礎元素屬性包含字體類型、字體大小、字體顏色和字體陰影效果中的一種 或任意組合。
19.如權利要求13-18任一項所述的裝置,其特征在于,所述第一處理單元按照所述至 少兩個基礎元素類對應的基礎元素屬性,分別生成相應的基礎元素實例時,按照所述至少 兩個基礎元素類包含的變量,分別創(chuàng)建實體對象,并按照所述基礎元素類對應的基礎元素 屬性,分別設置相應的實體對象的實體元素屬性。CN 101876917 A
20.如權利要求19所述的裝置,其特征在于,所述第一處理單元在按照所述至少兩個 基礎元素類對應的基礎元素屬性,分別設置相應的實體對象的實體元素屬性后,進一步設 置各實體對象的對應的方法和事件。
21.如權利要求19所述的裝置,其特征在于,所述第一處理單元按照所述至少兩個基 礎元素類對應的基礎元素屬性,分別生成相應的基礎元素實例后,所述第二處理單元根據 獲得的基礎元素實例組建生成相應的控件時,確定各基礎元素實例之間的相對位置關系和 邏輯關系,以及分別為各基礎元素實例對應的實體元素屬性賦值,并基于賦值后的各基礎 元素實例生成相應的控件。
22.如權利要求21所述的裝置,其特征在于,所述第二處理單元基于賦值后的各基礎 元素實例生成相應的控件后,創(chuàng)建渲染器,并采用該渲染器遍歷賦值后的各基礎元素實例, 以及通過所述渲染器按照各基礎元素實體的相對位置關系和邏輯關系,繪制相應的位圖。
23.—種修改控件的裝置,其特征在于,包括分解單元,用于獲得采用如權利要求11所述的裝置生成的控件,并將其分解為至少兩 個基礎元素實例;處理單元,用于遍歷所述至少兩個基礎元素實例對應的實體元素屬性;修改單元,用于根據指示修改所述實體元素屬性的賦值。
24.如權利要求23所述的裝置,其特征在于,所述處理單元遍歷所述至少兩個基礎元 素實例對應的實體元素屬性時,先獲得所述至少兩個基礎元素實體對應的屬性索引,并根 據所述屬性索引確定對應的實體元素屬性的標識和類型,以及根據獲得的實體元素屬性的 標識和類型,對相應的實體元素屬性進行重新賦值。
全文摘要
本發(fā)明公開了一種開發(fā)控件的方法及裝置,用以滿足軟件開發(fā)過程中日益多樣化的控件需求,該方法為對用戶界面中的控件進行了架構預定義,聲明了控件包含的基礎元素類,以及各基礎元素類實例化后的相互關系,那么,開發(fā)者可以根據自身需求靈活地使用各種基礎元素類組建生成相應的控件,不再受制于現有的Window控件的數量和種類,滿足軟件開發(fā)過程中多樣化的控件需求。本發(fā)明同時公開了一種修改控件的方法、一種開發(fā)控件的裝置和一種修改控件的裝置。
文檔編號G06F9/45GK101876917SQ20101022327
公開日2010年11月3日 申請日期2010年7月2日 優(yōu)先權日2010年7月2日
發(fā)明者劉智聰 申請人:深圳市迅雷網絡技術有限公司