[go: up one dir, main page]

CN101876917A - 一种开发控件的方法及装置 - Google Patents

一种开发控件的方法及装置 Download PDF

Info

Publication number
CN101876917A
CN101876917A CN2010102232753A CN201010223275A CN101876917A CN 101876917 A CN101876917 A CN 101876917A CN 2010102232753 A CN2010102232753 A CN 2010102232753A CN 201010223275 A CN201010223275 A CN 201010223275A CN 101876917 A CN101876917 A CN 101876917A
Authority
CN
China
Prior art keywords
basic element
class
entity
classes
attribute
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN2010102232753A
Other languages
English (en)
Inventor
刘智聪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Xunlei Networking Technologies Co Ltd
Original Assignee
Shenzhen Xunlei Networking Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Xunlei Networking Technologies Co Ltd filed Critical Shenzhen Xunlei Networking Technologies Co Ltd
Priority to CN2010102232753A priority Critical patent/CN101876917A/zh
Publication of CN101876917A publication Critical patent/CN101876917A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明公开了一种开发控件的方法及装置,用以满足软件开发过程中日益多样化的控件需求,该方法为:对用户界面中的控件进行了架构预定义,声明了控件包含的基础元素类,以及各基础元素类实例化后的相互关系,那么,开发者可以根据自身需求灵活地使用各种基础元素类组建生成相应的控件,不再受制于现有的Window控件的数量和种类,满足软件开发过程中多样化的控件需求。本发明同时公开了一种修改控件的方法、一种开发控件的装置和一种修改控件的装置。

Description

一种开发控件的方法及装置
技术领域
本发明涉及计算机领域,特别涉及一种生成及修改控件的方法及装置。
背景技术
在软件开发中,控件是对数据和方法的封装,控件可以有自己的属性和方法,属性是控件数据的简单访问者,方法则是控件的一些简单而可见的功能。在Windows开发环境中提供了多种公共控件,例如编辑框、列表框、滚动条及复选框等,其可为开发者封装重复的工作,简化开发者的开发过程。
然而Windows所提供的控件是有限的,随着技术的发展,软件开发者对控件的需求日益多样化,因此,仅使用现有的Windows控件不能满足软件开发过程中的各式各样的开发需求。
发明内容
本发明实施例提供一种生成及修改控件的方法及装置,用以满足软件开发过程中多样化的控件需求。
本发明实施例提供的具体技术方案如下:
一种开发控件的方法,包括:
获取指定的至少两个基础元素类,该至少两个基础元素类分别包含变量的名称及变量的类型,还包括对应的基础元素属性;
按照所述至少两个基础元素类对应的变量名称、变量类型及基础元素属性,分别生成相应的基础元素实例;
根据获得的基础元素实例组建生成相应的控件。
在上述技术方案中,在获取指定的至少两个基础元素类设置之前,对所述至少两个基础元素类进行预定义,所述预定义包括:设置所述至少两个基础元素类包含的变量的名称及变量的类型,以及设置所述至少两个基础元素类对应的基础元素属性;进一步地,还需设置各基础元素属性的索引,通过该索引可获得相应的基础元素属性的标识和类型。
一种修改控件的方法,包括:
获得采用上述开发控件的方法生成的控件,并将其分解为至少两个基础元素实例;
遍历所述至少两个基础元素实例对应的实体元素属性;,
并根据指示修改所述实体元素属性的赋值。
一种开发控件的装置,包括:
获取单元,用于获取指定的至少两个基础元素类,该至少两个基础元素类分别包含变量的名称及变量的类型,还包括对应的基础元素属性;
第一处理单元,用于按照所述至少两个基础元素类对应的变量名称、变量类型及基础元素属性,分别生成相应的基础元素实例;
第二处理单元,用于根据获得的基础元素实例组建生成相应的控件。
上述开发控件的装置中进一步包括:
设置单元,用于在获取指定的至少两个基础元素类设置之前,对所述至少两个基础元素类进行预定义,所述预定义包括:设置所述至少两个基础元素类包含的变量的名称及变量的类型,以及设置所述至少两个基础元素类对应的基础元素属性;进一步地,还需设置各基础元素属性的索引,通过该索引可获得相应的基础元素属性的标识和类型。
一种修改控件的装置,包括:
分解单元,用于获得采用上述开发控件的装置生成的控件,并将其分解为至少两个基础元素实例;
处理单元,用于遍历所述至少两个基础元素实例对应的实体元素属性;
修改单元,用于根据指示修改所述实体元素属性的赋值。
本发明实施例中,由于对用户界面中的控件进行了架构预定义,声明了控件包含的基础元素类,以及各基础元素类实例化后的相互关系,那么,开发者可以根据自身需求灵活地使用各种基础元素类组建生成相应的控件,不再受制于现有的Window控件的数量和种类,满足软件开发过程中多样化的控件需求。另一方面,即便仅有该控件的文件而没有界面源程序代码,管理人员也可以获知该控制的内部架构(如,控件包含的各基础元素实例对应的实体元素属性的标识及类型等等),从而可以有针对性地对该控件中的实体元素属性进行编辑修改,进而降低了控件生成及后期维护的复杂度,节约了二次开发的成本。
附图说明
图1为本发明实施例中控件的开发流程图;
图2为本发明实施例中控件的修改流程图;
图3为本发明实施例中用于开发控件的装置功能结构示意图;
图4为本发明实施例中用于修改控件的装置功能结构示意图。
具体实施方式
为了满足软件开发过程中日益多样化的控件需求。本发明实施例中,重新定义了用于构成软件用户界面中的控件的基础元素类,所谓基础元素类是指面向对象编程中的“类(Class)”概念,类是对某种类型的对象定义变量和方法的原型,类表示对一类具有共同特征的事物的抽象。定义基础元素类的过程包括定义该基础元素类中需要用到的变量的名称及变量的类型(字符型,整数型)等,还需要设置基础元素类对应的基础元素属性,以及设置所述基础元素属性的索引,通过该索引可获得相应的基础元素属性的标识和类型。例如,本发明实施例中使用C++所编写的定义“文本”基础元素类的代码如下:
class TextObject:public BaseRenderObject(定义“TextObject”类)
{
public:
 TextObject(const char*id=NULL);(定义“文本”基础元素类的名称为“TextObject”)
 virtual~TextObject(void);
public:
 bool SetTextFont(XL_FONT_HANDLE hFont);(设置基础元素属性“字体”)
 XL_FONT_HANDLE GetTextFont();
 bool SetTextColor(XL_Color crText);(设置基础元素属性“字体颜色”)
 XL_Color GetTextColor();
 bool SetBknColor(XL_Color crBkn);(设置基础元素属性“背景颜色”)
 XL_Color GetBknColor();
}
实际应用中,基础元素类至少包括图片元素类或/和文本元素类,为了更加方便的让开发者开发出其想要的控件,也可定义更多的基础元素类,例如逻辑控件类(ControlObject)、文本输入框类(EditObject)、颜色填充类(FillObject)、真窗口类(RealObject)、纹理类(TextureObject)、矢量类(VectorObject)等等。根据基础元素类,可以构建出多种控件,例如,滚动条控件,选择框控件、文本编辑框控件等等。每个基础元素类均可以包含多个基础元素属性,例如,图片元素类的基础元素属性可包括位置信息、可见程度、遮盖顺序和绘图模式(图片按窗体大小拉伸显示或是按窗体大小裁剪掉多余部分进行显示)等等,可以是其中的一种或任意组合;而文本元素类的基础元素属性可包括字体类型、字体大小、字体颜色和字体阴影效果等等,也可以是其中的一种或任意组合。将各基础元素类按照其基础元素属性及相互之间的逻辑关系进行排列,即可以完成控件的构成,然后将构成的控件嵌入至目标软件界面中,即可完成软件界面的构成。
下面结合附图对本发明优选的实施方式进行详细说明。
参阅图1所示,本发明实施例中,基于预先开发的基础元素类,用于开发控件的装置(称为控件开发装置)组建生成控件的详细流程如下:
步骤100:获取指定的至少两个基础元素类,该至少两个基础元素类分别包含变量的名称及变量的类型,还包括对应的基础元素属性;
执行步骤100之前,需对上述至少两个基础元素类进行预定义,所述预定义,包括:
设置所述至少两个基础元素类包含的变量的名称及变量的类型;
设置所述至少两个基础元素类对应的基础元素属性;
较佳地,为了便于在二次开发过程中能够获取所开发控件中包含的基础元素属性,设置所述至少两个基础元素类对应的基础元素属性后,还需要进一步设置各基础元素属性的索引,通过该索引可获得相应的基础元素属性的标识和类型。
所述对上述至少两个基础元素类进行预定义的过程通常可以事先完成,且基础元素类一旦定义后,即可供控件开发直接使用,无需进行重复定义,控件开发者可直接使用预先定义好的基础元素类进行控件开发。所以在控件开发过程中,可以不包括预定义基础元素类的步骤。
步骤110:按照所述至少两个基础元素类对应的变量名称、变量类型及基础元素属性,分别生成相应的基础元素实例;
实际应用中,所谓生成基础元素实体即是将基础元素类按照其基础元素属性实例化,即是在使用类(Class)创建对象的过程,在内存中为各基础元素属性分配相应的地址,以生成相应的实体对象,具体为:按照上述至少两个基础元素类包含的变量,分别创建实体对象,再按照上述至少两个基础元素类对应的基础元素属性,分别设置相应的实体对象的实体元素属性;那么,具有实体元素属性的实体对象即是最终所需的基础元素实例。
按照上述方式执行步骤110后,可以在软件界面中实现一个静态控件(即在用户操作过程中状态不发生改变的控件,如,在软件界面中显示一个文本提示标签,这个文本提示标签在软件使用过程中不发生变化),如果要实现动态控件,例如,一个按钮想实现如下功能:当用户鼠标移动至该按钮上时,改变按钮颜色,当点击按钮时,按钮改变外观形状为凹陷等等,则较佳地,在按照基础元素类对应的基础元素属性设置相应的实体对象的实体元素属性后,进一步设置各实体对象对应的方法和事件。如,针对图片元素实例及文本元素实例设置相应的方法及事件,事件可以包括各种触发图片元素实例及文本元素实例状态改变的条件,如,鼠标点击对象、指针移动至对象上等等,方法则可以包括在各类事件发生时,图片元素实例及文本元素实例的属性变化方式,例如,当鼠标指针移动至按钮上时,改变按钮的颜色为金色以突出显示。
步骤120:根据获得的基础元素实例组建生成相应的控件。
在执行步骤120时,需要确定各基础元素实例之间的相对位置关系和逻辑关系,再分别为各基础元素实例对应的实体元素属性赋值,并基于赋值后的各基础元素实例生成相应的控件。其中,所谓的相对位置关系是指两种基础元素实例的相对的坐标关系,例如,文本元素实例的位置位于图片元素实例的中间、顶部、底部、靠左或靠右等等,所谓的逻辑关系是指两种基础元素实例之间的遮盖关系,例如,文本元素实例会位于图像元素实例的上层。
基于上述实施例,在为各基础元素实例赋值时,可使用java、Lua等脚本语言从程序的数据段获取数据,其中,Lua是一个小巧的脚本语言,其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。例如,获取文本元素实例的字体类型、字体大小、获取图片元素实例的位置信息、可见程度等等。
为基础元素实例赋值,并基于赋值后的各基础元素实例生成相应的控件之后,可以创建渲染器render(创建渲染器主要是分配渲染器所需要的缓存位图资源),并采用该渲染器遍历赋值后的各基础元素实例,以及通过所述渲染器按照各基础元素实体的相对位置关系和逻辑关系,绘制相应的位图,这样就可以将生成的控件输出至显示屏呈现给用户了。
上述流程可以采用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=″ChangeStateWhenLeave″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>
    <OnClick/>
    <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>
                     <obj id=″button.light″class=″ImageObject″>(生成图片对象实例)
                                <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>1</top>
                                <width>father.width</width>
                                <height>father.height-1</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.lua″func=″OnLButtonDown″/>
               <event name=″OnLButtonUp″file=″Button.xml.lua″func=″OnLButtonUp″/>
               <event name=″OnMouseMove″Move=″Button.xml.lua″func=″OnMouseMove″/>
               <event name=″OnMouseLeave″file=″Button.xml.lua″func=″OnMouseLeave″/>
               <event name=″OnBind″file=″Button.xml.lua″func=″OnBind″/>
          </eventlist>
     </objtemplate>
</control>
基于上述流程生成所需的控件后,由于可以解析出控件的内部结构,因此,可以在后续二次开发过程中,对控件进行局部修改,例如,对于一个按钮控件,可修改其按钮背景颜色,或按钮上文字的字体等等而无需重新开发控件代码。
基于上述实施例,参阅图2所示,本发明实施例中,用于修改控件的装置(称为控件修改装置)对开发生成的控件进行修改的详细流程如下:
步骤200:获得控件开发装置按照步骤100-步骤120生成的控件,并将其分解为至少两个基础元素实例。
由于控件开发装置是基于基础元素类生成的,因此,可以在后续二次开发过程中进行解析,从而获得组成控件的基础元素实例。
例如,将软件界面中的控件解析为图片元素实例和文本元素实例,该图片元素实例及文本元素实例基于预设的基础元素类生成,该预设的基础元素类包括图片元素类及文本元素类,各个基础元素类包含了多个基础元素属性,因此该图片元素实例及文本元素实例也包含了根据基础元素属性生成的对应的实体元素属性。图片元素实例对应的实体元素属性有图片内容及位置信息,文本元素实例对应的实体元素属性有文本内容及位置信息,图片元素实例及文本元素实例之间根据其相对位置关系和逻辑关系确定相应的父子关系;
步骤210:遍历所述至少两个基础元素实例对应的实体元素属性,并根据指示修改所述实体元素属性的赋值。
具体为:所述处理单元遍历所述至少两个基础元素实例对应的实体元素属性时,先获得所述至少两个基础元素实体对应的属性索引,并根据所述属性索引确定对应的实体元素属性的标识和类型,以及根据获得的实体元素属性的标识和类型,对相应的实体元素属性进行重新赋值。而在修改实体元素属性的赋值时,可以对其相对位置关系、元素内容(如图片内容、文本内容)等等进行重新赋值。
基于上述实施例,参阅图3所示,本发明实施例中,控件开发装置包括获取单元10、第一处理单元11和第二处理单元12,其中,
获取单元10,用于获取指定的至少两个基础元素类,该至少两个基础元素类分别包含变量的名称及变量的类型,还包括对应的基础元素属性;
第一处理单元11,用于按照所述至少两个基础元素类对应的变量名称、变量类型及基础元素属性,分别生成相应的基础元素实例;
第二处理单元12,用于根据获得的基础元素实例组建生成相应的控件。
如图3所示,本发明实施例中,控件开发装置内进一步包括设置单元13,用于在获取指定的至少两个基础元素类之前,对其进行预定义,所谓预定义包括:设置所述至少两个基础元素类包含的变量的名称及变量的类型,设置所述至少两个基础元素类对应的基础元素属性;进一步地,还需设置各基础元素属性的索引,通过该索引可获得相应的基础元素属性的标识和类型。
本实施例中,第一处理单元11按照所述至少两个基础元素类对应的基础元素属性,分别生成相应的基础元素实例时,按照所述至少两个基础元素类包含的变量,分别创建实体对象,并按照所述至少两个基础元素类对应的基础元素属性,分别设置相应的实体对象的实体元素属性。
第一处理单元11在按照所述至少两个基础元素类对应的基础元素属性,分别设置相应的实体对象的实体元素属性后,进一步设置各实体对象的对应的方法和事件。
第一处理单元11按照所述至少两个基础元素类对应的基础元素属性,分别生成相应的基础元素实例后,第二处理单元12根据获得的基础元素实例组建生成相应的控件时,确定各基础元素实例之间的相对位置关系和逻辑关系,以及分别为各基础元素实例对应的实体元素属性赋值,并基于赋值后的各基础元素实例生成相应的控件。
第二处理单元12基于赋值后的各基础元素实例生成相应的控件后,创建渲染器,并采用该渲染器遍历赋值后的各基础元素实例,以及通过所述渲染器按照各基础元素实体的相对位置关系和逻辑关系,绘制相应的位图。这样便可以将生成的控件通过用户接口输出至显示屏,以呈现给用户。
参阅图4所示,本发明实施例中,控件修改装置包括分解单元20、处理单元21和修改单元22,其中,
分解单元20,用于获得采用控件开发装置生成的控件,并将其分解为至少两个基础元素实例;
处理单元21,用于遍历所述至少两个基础元素实例对应的实体元素属性;
修改单元22,用于根据指示修改所述实体元素属性的赋值。
本发明实施例中,处理单元21遍历所述至少两个基础元素实例对应的实体元素属性时,先获得所述至少两个基础元素实体对应的属性索引,并根据所述属性索引确定对应的实体元素属性的标识和类型,以及根据获得的实体元素属性的标识和类型,对相应的实体元素属性进行重新赋值。
上述用于控件开发装置和控件修改装置可以作为两个独立的装置分别设置,也可以作为两个功能模块集成在同一设备内,可以根据实际环境需求自行设置,在此不予赘述。
综上所述,本发明实施例中,由于对用户界面中的控件进行了架构预定义,声明了控件包含的基础元素类,以及各基础元素类实例化后的相互关系,那么,开发者可以根据自身需求灵活地使用各种基础元素类组建生成相应的控件,不再受制于现有的Window控件的数量和种类,满足软件开发过程中多样化的控件需求。另一方面,即便仅有该控件的文件而没有界面源程序代码,管理人员也可以获知该控制的内部架构(如,控件包含的各基础元素实例对应的实体元素属性的标识及类型等等),从而可以有针对性地对该控件中的实体元素属性进行编辑修改,进而降低了控件生成及后期维护的复杂度,节约了二次开发的成本。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (24)

1.一种开发控件的方法,其特征在于,包括:
获取指定的至少两个基础元素类,该至少两个基础元素类分别包含变量的名称及变量的类型,还包括对应的基础元素属性;
按照所述至少两个基础元素类对应的变量名称、变量类型及基础元素属性,分别生成相应的基础元素实例;
根据获得的基础元素实例组建生成相应的控件。
2.如权利要求1所述的方法,其特征在于,在获取指定的至少两个基础元素类之前,对所述至少两个基础元素类进行预定义,所述预定义包括:
设置所述至少两个基础元素类包含的变量的名称及变量的类型;
设置所述至少两个基础元素类对应的基础元素属性。
3.如权利要求2所述的方法,其特征在于,设置所述至少两个基础元素类对应的基础元素属性后,进一步设置各基础元素属性的索引,通过该索引可获得相应的基础元素属性的标识和类型。
4.如权利要求1所述的方法,其特征在于:
所述基础元素类包括图片元素类和文本元素类;或
所述基础元素类包括图片元素类和文本元素类,还包括逻辑控件类、文本输入框类、颜色填充类、真窗口类、纹理类、矢量类中的一种或任意组合。
5.如权利要求4所述的方法,其特征在于,所述基础元素类为图片元素类时,该基础元素类对应的基础元素属性包括位置信息、可见程度、遮盖顺序和绘图模式中的一种或任意组合。
6.如权利要求4所述的方法,其特征在于,所述基础元素类为文本元素类时,该基础元素类对应的基础元素属性包含字体类型、字体大小、字体颜色和字体阴影效果中的一种或任意组合。
7.如权利要求1-6任一项所述的方法,其特征在于,按照所述至少两个基础元素类对应的基础元素属性,分别生成相应的基础元素实例,包括:
按照所述至少两个基础元素类包含的变量,分别创建实体对象;
按照所述至少两个基础元素类对应的基础元素属性,分别设置相应的实体对象的实体元素属性。
8.如权利要求7所述的方法,其特征在于,在按照所述至少两个基础元素类对应的基础元素属性,分别设置相应的实体对象的实体元素属性后,进一步设置各实体对象的对应的方法和事件。
9.如权利要求7所述的方法,其特征在于,按照所述至少两个基础元素类对应的基础元素属性,分别生成相应的基础元素实例后,在根据获得的基础元素实例组建生成相应的控件时,包括:
确定各基础元素实例之间的相对位置关系和逻辑关系;
分别为各基础元素实例对应的实体元素属性赋值,并基于赋值后的各基础元素实例生成相应的控件。
10.如权利要求9所述的方法,其特征在于,所述基于赋值后的各基础元素实例生成相应的控件之后,还包括:
创建渲染器,并采用该渲染器遍历赋值后的各基础元素实例;
通过所述渲染器按照各基础元素实体的相对位置关系和逻辑关系,绘制相应的位图。
11.一种修改控件的方法,其特征在于,包括:
获得采用如权利要求3所述的方法生成的控件,并将其分解为至少两个基础元素实例;
遍历所述至少两个基础元素实例对应的实体元素属性,并根据指示修改所述实体元素属性的赋值。
12.如权利要求11所述的方法,其特征在于,所述遍历所述至少两个基础元素实例对应的实体元素属性,并根据指示修改所述实体元素属性的赋值,包括:
获得所述至少两个基础元素实例对应的属性索引;
根据所述属性索引确定对应的实体元素属性的标识和类型;
根据获得的实体元素属性的标识和类型,对相应的实体元素属性进行重新赋值。
13.一种开发控件的装置,其特征在于,包括:
获取单元,用于获取指定的至少两个基础元素类,该至少两个基础元素类分别包含变量的名称及变量的类型,还包括对应的基础元素属性;
第一处理单元,用于按照所述至少两个基础元素类对应的变量名称、变量类型及基础元素属性,分别生成相应的基础元素实例;
第二处理单元,用于根据获得的基础元素实例组建生成相应的控件。
14.如权利要求13所述的装置,其特征在于,进一步包括:
设置单元,用于在获取指定的至少两个基础元素类之前,对所述至少两个基础元素类进行预定义,所述预定义包括:设置所述至少两个基础元素类包含的变量的名称及变量的类型,以及设置所述至少两个基础元素类对应的基础元素属性。
15.如权利要求14所述的装置,其特征在于,所述设置单元设置所述至少两个基础元素类对应的基础元素属性后,进一步设置各基础元素属性的索引,通过该索引可获得相应的基础元素属性的标识和类型。
16.如权利要求13所述的装置,其特征在于:
所述基础元素类包括图片元素类和文本元素类;
所述基础元素类包括图片元素类和文本元素类,还包括逻辑控件类、文本输入框类、颜色填充类、真窗口类、纹理类、矢量类中的一种或任意组合。
17.如权利要求16所述的装置,其特征在于,所述基础元素类为图片元素类时,该基础元素类对应的基础元素属性包括位置信息、可见程度、遮盖顺序和绘图模式中的一种或任意组合。
18.如权利要求16所述的装置,其特征在于,所述基础元素类为文本元素类时,该基础元素类对应的基础元素属性包含字体类型、字体大小、字体颜色和字体阴影效果中的一种或任意组合。
19.如权利要求13-18任一项所述的装置,其特征在于,所述第一处理单元按照所述至少两个基础元素类对应的基础元素属性,分别生成相应的基础元素实例时,按照所述至少两个基础元素类包含的变量,分别创建实体对象,并按照所述基础元素类对应的基础元素属性,分别设置相应的实体对象的实体元素属性。
20.如权利要求19所述的装置,其特征在于,所述第一处理单元在按照所述至少两个基础元素类对应的基础元素属性,分别设置相应的实体对象的实体元素属性后,进一步设置各实体对象的对应的方法和事件。
21.如权利要求19所述的装置,其特征在于,所述第一处理单元按照所述至少两个基础元素类对应的基础元素属性,分别生成相应的基础元素实例后,所述第二处理单元根据获得的基础元素实例组建生成相应的控件时,确定各基础元素实例之间的相对位置关系和逻辑关系,以及分别为各基础元素实例对应的实体元素属性赋值,并基于赋值后的各基础元素实例生成相应的控件。
22.如权利要求21所述的装置,其特征在于,所述第二处理单元基于赋值后的各基础元素实例生成相应的控件后,创建渲染器,并采用该渲染器遍历赋值后的各基础元素实例,以及通过所述渲染器按照各基础元素实体的相对位置关系和逻辑关系,绘制相应的位图。
23.一种修改控件的装置,其特征在于,包括:
分解单元,用于获得采用如权利要求11所述的装置生成的控件,并将其分解为至少两个基础元素实例;
处理单元,用于遍历所述至少两个基础元素实例对应的实体元素属性;
修改单元,用于根据指示修改所述实体元素属性的赋值。
24.如权利要求23所述的装置,其特征在于,所述处理单元遍历所述至少两个基础元素实例对应的实体元素属性时,先获得所述至少两个基础元素实体对应的属性索引,并根据所述属性索引确定对应的实体元素属性的标识和类型,以及根据获得的实体元素属性的标识和类型,对相应的实体元素属性进行重新赋值。
CN2010102232753A 2010-07-02 2010-07-02 一种开发控件的方法及装置 Pending CN101876917A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2010102232753A CN101876917A (zh) 2010-07-02 2010-07-02 一种开发控件的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2010102232753A CN101876917A (zh) 2010-07-02 2010-07-02 一种开发控件的方法及装置

Publications (1)

Publication Number Publication Date
CN101876917A true CN101876917A (zh) 2010-11-03

Family

ID=43019478

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010102232753A Pending CN101876917A (zh) 2010-07-02 2010-07-02 一种开发控件的方法及装置

Country Status (1)

Country Link
CN (1) CN101876917A (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104978195A (zh) * 2015-06-26 2015-10-14 浪潮软件集团有限公司 一种界面配置装置及方法
CN105354013A (zh) * 2014-08-18 2016-02-24 阿里巴巴集团控股有限公司 应用界面渲染方法及装置
CN105867914A (zh) * 2016-03-24 2016-08-17 四川长虹电器股份有限公司 iOS自定义UIButton类实现按钮外观及动画效果的方法
CN109117228A (zh) * 2018-08-01 2019-01-01 浙江口碑网络技术有限公司 图形界面的生成方法及装置
CN109240687A (zh) * 2018-08-01 2019-01-18 浙江口碑网络技术有限公司 图形界面描述文件的生成方法及装置
CN109377424A (zh) * 2018-08-23 2019-02-22 深圳点猫科技有限公司 一种基于教育操作系统的自定义控件实现方法及电子设备
CN112256346A (zh) * 2020-10-14 2021-01-22 北京字跳网络技术有限公司 控件显示方法、装置和电子设备
CN113177292A (zh) * 2021-04-02 2021-07-27 中铁电气化局集团有限公司 一种通用的bim二次开发实现方法和装置
CN115048161A (zh) * 2021-02-26 2022-09-13 华为技术有限公司 应用的控制方法及其电子设备、装置和介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1609792A (zh) * 2003-10-24 2005-04-27 微软公司 计算机程序的编程接口
CN101192143A (zh) * 2006-12-01 2008-06-04 上海亚伦科技有限公司 一种软件界面的构造方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1609792A (zh) * 2003-10-24 2005-04-27 微软公司 计算机程序的编程接口
CN101192143A (zh) * 2006-12-01 2008-06-04 上海亚伦科技有限公司 一种软件界面的构造方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
《http://blog.csdn.net/afxid/article/details/899019》 20060710 afxid MFC中改变控件的大小和位置(zz) 正文倒数第8行至倒数第2行 11-12,23-24 , *
《Java开发入行真功夫》 20090228 陈冈等 第10章 图形界面编程 电子工业出版社 第310-311页 1-24 , *
AFXID: "MFC中改变控件的大小和位置(zz)", 《HTTP://BLOG.CSDN.NET/AFXID/ARTICLE/DETAILS/899019》 *
陈冈等: "《Java开发入行真功夫》", 28 February 2009, 电子工业出版社 *

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105354013A (zh) * 2014-08-18 2016-02-24 阿里巴巴集团控股有限公司 应用界面渲染方法及装置
CN105354013B (zh) * 2014-08-18 2019-07-23 阿里巴巴集团控股有限公司 应用界面渲染方法及装置
CN104978195A (zh) * 2015-06-26 2015-10-14 浪潮软件集团有限公司 一种界面配置装置及方法
CN105867914A (zh) * 2016-03-24 2016-08-17 四川长虹电器股份有限公司 iOS自定义UIButton类实现按钮外观及动画效果的方法
CN105867914B (zh) * 2016-03-24 2019-05-07 四川长虹电器股份有限公司 iOS自定义UIButton类实现按钮外观及动画效果的方法
CN109117228A (zh) * 2018-08-01 2019-01-01 浙江口碑网络技术有限公司 图形界面的生成方法及装置
CN109240687A (zh) * 2018-08-01 2019-01-18 浙江口碑网络技术有限公司 图形界面描述文件的生成方法及装置
CN109377424A (zh) * 2018-08-23 2019-02-22 深圳点猫科技有限公司 一种基于教育操作系统的自定义控件实现方法及电子设备
CN112256346A (zh) * 2020-10-14 2021-01-22 北京字跳网络技术有限公司 控件显示方法、装置和电子设备
CN115048161A (zh) * 2021-02-26 2022-09-13 华为技术有限公司 应用的控制方法及其电子设备、装置和介质
CN113177292A (zh) * 2021-04-02 2021-07-27 中铁电气化局集团有限公司 一种通用的bim二次开发实现方法和装置
CN113177292B (zh) * 2021-04-02 2024-02-02 中铁电气化局集团有限公司 一种通用的bim二次开发实现方法和装置

Similar Documents

Publication Publication Date Title
CN101876917A (zh) 一种开发控件的方法及装置
CN110825362B (zh) 低代码应用软件开发系统及方法
CN110007917B (zh) 一种基于浏览器的可视化页面生成和浏览方法
CN104239044B (zh) 一种图形用户界面动态生成方法
CN102609248B (zh) 一种基于mda的综合航空电子系统建模仿真平台
CN105630939B (zh) 一种通用画布输入接口设计方法及装置
CN111562912A (zh) 面向数据可视化的前端组件化开发方法及系统
CN102637406B (zh) 一种led显示设计系统及方法
CN113535165A (zh) 界面生成方法、装置、电子设备及计算机可读存储介质
Scarpino et al. SWT/JFace in Action: GUI Design with Eclipse 3.0
Benouda et al. Automatic code generation within MDA approach for cross-platform mobiles apps
CN103150198A (zh) 一种组态软件的显示方法
Jeffery The city metaphor in software visualization
Chavarriaga et al. An approach to build XML-based domain specific languages solutions for client-side web applications
CN102081521B (zh) 一种通用的武器装备操作界面开发平台
CN112667210B (zh) 一种地理信息系统软件的模块化定制方法及装置
CN106599087B (zh) 一种空间信息服务的二次开发方法
Fujima Building a meme media platform with a JavaScript MVC framework and HTML5
US8990766B2 (en) Construction of object-oriented programming (OOP) patterns by behavior delegation
JP2008287365A (ja) プログラム生成装置およびプログラム生成方法およびプログラムおよび記録媒体
CN104267954A (zh) 一种用户界面中所包含的部件的生成方法和装置
CN110727433B (zh) 一种多通道三维用户界面的生成方法
Koznov et al. View to view transformations in domain specific modeling
Rencis et al. Towards Open Graphical Tool-Building Framework.
Seffah HCI design patterns as a building block in model-driven engineering

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20101103