CN100507845C - 一种可设置多值域区间的编辑控件的创建方法 - Google Patents

一种可设置多值域区间的编辑控件的创建方法 Download PDF

Info

Publication number
CN100507845C
CN100507845C CNB2007101222112A CN200710122211A CN100507845C CN 100507845 C CN100507845 C CN 100507845C CN B2007101222112 A CNB2007101222112 A CN B2007101222112A CN 200710122211 A CN200710122211 A CN 200710122211A CN 100507845 C CN100507845 C CN 100507845C
Authority
CN
China
Prior art keywords
interval
control
territory
value
tlv triple
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.)
Expired - Fee Related
Application number
CNB2007101222112A
Other languages
English (en)
Other versions
CN101118492A (zh
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.)
Peking University Founder Group Co Ltd
Beijing Founder Electronics Co Ltd
Original Assignee
Peking University Founder Group Co Ltd
Beijing Founder Electronics 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 Peking University Founder Group Co Ltd, Beijing Founder Electronics Co Ltd filed Critical Peking University Founder Group Co Ltd
Priority to CNB2007101222112A priority Critical patent/CN100507845C/zh
Publication of CN101118492A publication Critical patent/CN101118492A/zh
Application granted granted Critical
Publication of CN100507845C publication Critical patent/CN100507845C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本发明涉及一种可设置多值域区间的编辑控件的创建方法。在现有的可视化应用软件的界面控件中,系统通常只允许用户为数值型控件指定一个最大值和最小值。当用户输入超出该值域范围以外的值时,系统将给出错误提示。本发明提出了一种新型的可对任意值域区间的参数进行数据校验的数值控件,简化了工程软件界面的开发流程。因此,本发明解决了传统控件只能对闭合单区间进行数据校验的问题,可广泛应用于任何工程软件的界面开发中。

Description

一种可设置多值域区间的编辑控件的创建方法
技术领域
本发明属于人机交互领域,具体涉及一种可设置多值域区间的编辑控件的创建方法。
背景技术
在计算机技术领域内,控件实际上是子窗口,在应用程序与用户进行交互的过程中,控件是主要角色。以Windows操作系统为例,Windows提供了五花八门的标准控件。这些控件的目的就是方便程序与用户的交互。应用程序应该根据自己的实际情况,选择合适的控件。控件的创建有自动和手工两种常用方法。控件的自动创建是通过向对话框模板中添加控件实现的。手工创建控件是一种比较专业的方法,包括以下步骤:构建一个控件对象,定义必要的控件属性,调用控件对象的Create成员函数创建控件。控件的属性是程序设计时为该控件对象指定的一个数据存储空间。在标准的控件中,通常只定义了控件运行所需的最基本的属性。在实际的应用中,程序员常常需要根据要求定义一些必要的控件属性。这些控件属性通常包含了计算机进行运算时所需的运算数据。
计算机需要通过某种方法来对这些控件属性进行查询和设置。访问控件有四种方法:利用对话框的数据交换功能访问控件,通过控件对象来访问控件,利用CWnd类的一些用于管理控件的成员函数来访问控件,用CWn::GetDlgItem访问控件。
在现有的可视化应用软件的界面控件中,以Windows应用程序为例,如果采用自动创建的方法来添加控件的话,系统通常只允许用户为数值型控件(比如编辑控件)指定一个最大值和最小值。当用户输入超出该值域范围以外的值时,系统将给出错误提示。控件对数据有效性的检验降低了非法输入对业务逻辑带来的安全隐患,降低了应用程序的系统风险。但在实际的工程应用中,某个变量的值域往往由多个非封闭区间组成,显然,已有的标准界面控件,无法满足工程软件的开发需要。
本发明描述了一种手动创建控件的方法,通过在控件中添加一个控件属性来实现设置多值域区间数据的需要。
发明内容
针对现有技术中存在的缺陷,本发明的目的是提供一种可设置多值域区间的编辑控件的创建方法。通过该方法创建的编辑控件能够对任意值域区间的参数进行数据校验。
为达到以上目的,本发明采用的技术方案是:
一种可设置多值域区间的编辑控件的创建方法,包括以下步骤:
步骤一,首先定义三元组,所述的三元组包括操作码、左区间值、右区间值,所述的操作码用于描述左右区间的闭合情况;
步骤二,定义三元组中的操作码;
步骤三,定义包含三元组序列的数据结构;
步骤四,在操作系统的标准编辑控件上派生一个新的控件,在新的控件中定义一个属性,并将该属性的数据结构定义为链表;
步骤五,将多值域数值拆成多个单值域的并集,每个单值域采用一个三元组进行描述,并将该三元组插入到链表中完成初始化。
进一步,步骤一中,所述的三元组是(操作码,左区间值,右区间值)、(左区间值,操作码,右区间值),或者是(左区间值,右区间值,操作码)。
进一步,步骤二中所定义的三元组中的操作码为:闭区间——0、开区间——3、左闭右开——2、左开右闭——1。
进一步,步骤三中,所述的数据结构是线性链表、数组或循环链表。
进一步,步骤三中,所述的线性链表由依次链接的一组结点组成,结点数动态扩展,每一个结点对应一个三元组。
本发明采用的另外一种技术方案是:一种可设置多值域区间的编辑控件的创建方法,包括以下步骤:
步骤一,首先定义四元组,所述的四元组包括左区间闭合判定码,左区间值,右区间值,右区间闭合判定码;
步骤二,定义四元组中的左区间闭合判定码和右区间闭合判定码;
步骤三,定义包含四元组序列的数据结构;
步骤四,在操作系统的标准编辑控件上派生一个新的控件,在新的控件中定义一个属性,并将该属性的数据结构定义为链表;
步骤五,将多值域数值拆成多个单值域的并集,每个单值域采用一个四元组进行描述,并将该四元组插入到链表中完成初始化。
进一步,步骤三中,所述的数据结构是线性链表、数组或循环链表。
进一步,步骤三中,所述的线性链表由依次链接的一组结点组成,结点数动态扩展,每一个结点对应一个四元组。
本发明的效果在于:本发明解决了传统控件只能对封闭单区间的参数提供数据校验的问题,提出了一种新型的可对任意值域区间的参数进行数据校验的数值控件,简化了工程软件界面的开发流程。因此,本发明解决了传统控件只能对闭合单区间进行数据校验的问题,可广泛应用于任何工程软件的界面开发中。
附图说明
图1是本发明所述第一种技术方案的流程图;
图2是本发明所述的线性表的推演示意图;
图3是线性表的结构示意图;
图4是一个Windows下的绘图系统示例图;
图5是本发明所述的控件数据校验流程图。
具体实施方式
下面结合具体实施方式和附图对本发明作进一步的描述。
一种可设置多值域区间的编辑控件的创建方法,包括以下步骤:
步骤一,首先选用一种可方便转换为计算机程序的形式化表达方法来对单值域进行描述。在数学中,一个值域区间被表示为[a,b],或者a≤X≤b,这里a为最小值,b为最大值。但这种纯粹的数学表达式是不能直接用现有编程语言进行表达。通常我们使用数学范式来进行描述。在本实施例中,我们优先选用三元组来定义一个值域区间。一个三元组由操作码、最大值和最小值三部分组成。三元组的定义方式有很多种,可以是(操作码,左区间值,右区间值)、(左区间值,操作码,右区间值),也可以是(左区间值,右区间值,操作码)。本发明我们优先选用(操作码,左区间值,右区间值)的方式。
数学中的值域区间除了用三元组外还可以采用其他方式描述,比如四元组(左区间闭合判定码,左区间值,右区间值,右区间闭合判定码)。
步骤二,定义操作码。在本发明中,操作码用于描述左右区间的闭合情况,因为,以左区间为例,如果为闭合表示变量可以取大于或者等于最小值的数值;如果不是闭合,则只能取大于最小值的数值。在本实施例中,由于我们优先选择了三元组,所以需要用一个操作码来定义左右区间的闭合情况,如果是步骤一中所述的四元组,则操作码只需定义左区间或者右区间的闭合情况即可。
由于左右区间的闭合情况只有四种组合:左右均闭,左右均开,左闭右开,左开右闭。所以操作码的定义方法只要能对以上四种情况进行区分即可。定义的方法有很多种,我们优先用0,1,2,3,4来对以上四种情况进行约定。也可以采用一个两位的二进制数来进行编码,比如二进制数的第二位表示左区间的闭或者合,第一位表示右区间的闭或者合,这样的编码串为00,10,01,11四种。
步骤三,以上两个步骤解决了单个值域的定义问题,即用一个三元组来定义一个值域区间。所谓多值域实际上由多个单值域组成。因此,步骤三只要定义一个可以包含三元组序列的数据结构即可。在常用的数据结构中,我们可以选择线性链表、数组、循环链表等方式。本实施例中我们优先选择用线性链表(或简称线性表)来定义一个可包含多个三元组的数据结构。该线性链表由依次链接的一组结点组成,结点数动态扩展,每一个结点对应一个三元组;
步骤四,在操作系统的标准编辑控件上派生一个新的控件,在新的控件中定义一个属性,并将该属性的数据结构定义为链表。
步骤五,将多值域数值拆成多个单值域的并集,在数学中,这种表达方式是确定的,且是唯一的。每个单值域采用一个三元组进行描述,并将该三元组插入到线性链表中完成初始化。
经过以上五步骤创建的控件,即可满足多值域数据的需求了。
例如,如图1所示,用户需要用一个Windows的编辑控件来采集一个数据,该数据的值域空间为-1≤X≤1且X≠0。
首先,定义一个三元组的数据结构来描述单值域。以下以C语言为例:
Struct{
int opera;
float min;
float max}_value
其次,以上三元组结构中的操作码opera,采用如下编码方式:
其中操作码分别定义为:闭区间——0、开区间——3、左闭右开——2、左开右闭——1;
第三步,定义一个以三元组为结点的线性链表。
Struct{
_value node;
_value*pt;
}_valueChain;
本发明所述的线性表的推演如图2所示;
本发明所述的线性表的结构如图3所示。
第四步,继承Windows的标准空间CEdit,创建一个新的编辑控件,并定义一个属性,声明为线性链表类型。
CMyEdit:public Cedit
{
 _valueChain data;
}
第五步,将-1≤X≤1且X≠0拆分为多个单值域的合集,即[-1,0)∪(0,1]。每个单值域采用一个三元组进行描述,并将该三元组插入到线性链表中完成初始化。
{
_value*pt;
pt=new(sizeof(_value));
pt->opera=2;//左闭右开区间;
pt->min=-1;
pt->max=0;
data.add(pt);//添加三元组;
pt=new(sizeof(_value));
pt->opera=3;//左开右闭区间;
pt->min=0;
pt->max=1;
}
至此,一个拥有多值域区间的控件创建完毕。
在本发明的技术方案中:
一、本发明首先解决任意值域区间的形式化表达问题。本发明将该问题归为四类:
a)不等于的表达问题;
b)区间的表达问题;
c)无穷大的表达问题;
d)并集的表达。
对于不等于的问题,本发明可以用后三类问题来表示,比如X≠a,可转化为(-∞,a)∪(a,+∞)。
无穷大的问题,可以用计算机可表达的最大的值MAX来解决。
对于区间,本发明定义了一个三元组——(操作码,左区间值,右区间值)来表示,其中操作码分别定义为:闭区间——0、开区间——3、左闭右开——2、左开右闭——1。
在实现中,本发明利用指针的概念来解决并集的问题。
由此,任意一个值域区间都可用一个或多个三元组的并集来表达。
比如:-1≤X≤1且X≠0这样的值域范围可以表达为[-1,0)∪(0,1]。
二、其次,本发明定义一种线性表来对以上的数学表达式进行描述。该表由依次链接的一组结点组成,结点数可动态扩展,每一个结点对应一个三元组。
三、再次,本发明在操作系统的标准编辑控件上派生一个新的控件,在该控件中定义一个属性,并将其声明为本发明定义的线性表类型,按照附图中的操作说明对其初始化后便可使用了。
四、在控件的使用中,当编辑控件有数值输入时,可通过对线性表中的结点进行遍历来实现数据的有效性校验。
本实施例中以Windows下的一个绘图系统为例。如图4所示,在直线的绘制系统中,本实施例中假定接受用户输入不超过1000的非0正整数作为线宽的有效输入。
1.该值域的表示方式为(0,1000〕,在动态数组中的三元组表示方式,为(1,0,1000)。
2.创建一个新的编辑控件,申明该控件为CEdit的子类
3.使用Windows标准类库中的动态数组来定义线性表
4.初始化线性表
5.响应控件的En_change消息,当编辑控件有变化时,系统遍历动态数组进行有效性检验,并给出对应的提示信息。新型控件数据校验处理流程见图5。
本发明所述的方法并不限于具体实施方式中所述的实施例,本领域技术人员根据本发明的技术方案得出其他的实施方式,同样属于本发明的技术创新范围。

Claims (8)

1.一种可设置多值域区间的编辑控件的创建方法,包括以下步骤:
步骤一,首先定义三元组,所述的三元组包括操作码、左区间值、右区间值,所述的操作码用于描述左右区间的闭合情况;
步骤二,定义三元组中的操作码;
步骤三,定义包含三元组序列的数据结构;
步骤四,在操作系统的标准编辑控件上派生一个新的控件,在新的控件中定义一个属性,并将该属性的数据结构定义为链表;
步骤五、将多值域数值拆成多个单值域的并集,每个单值域采用一个三元组进行描述,并将该三元组插入到链表中完成初始化。
2.如权利要求1所述的一种可设置多值域区间的编辑控件的创建方法,其特征是:步骤一中,所述的三元组是(操作码,左区间值,右区间值)、(左区间值,操作码,右区间值),或者是(左区间值,右区间值,操作码)。
3.如权利要求1或2所述的一种可设置多值域区间的编辑控件的创建方法,其特征是步骤二中所定义的三元组中的操作码为:闭区间——0、开区间——3、左闭右开——2、左开右闭——1。
4.如权利要求1或2所述的一种可设置多值域区间的编辑控件的创建方法,其特征是:步骤三中,所述的数据结构是线性链表、数组或循环链表。
5.如权利要求4所述的一种可设置多值域区间的编辑控件的创建方法,其特征是:步骤三中,所述的线性链表由依次链接的一组结点组成,结点数动态扩展,每一个结点对应一个三元组。
6.一种可设置多值域区间的编辑控件的创建方法,包括以下步骤:
步骤一,首先定义四元组,所述的四元组包括左区间闭合判定码,左区间值,右区间值,右区间闭合判定码;
步骤二,定义四元组中的左区间闭合判定码和右区间闭合判定码;
步骤三,定义包含四元组序列的数据结构;
步骤四,在操作系统的标准编辑控件上派生一个新的控件,在新的控件中定义一个属性,并将该属性的数据结构定义为链表;
步骤五,将多值域数值拆成多个单值域的并集,每个单值域采用一个四元组进行描述,并将该四元组插入到链表中完成初始化。
7.如权利要求6所述的一种可设置多值域区间的编辑控件的创建方法,其特征是:步骤三中,所述的数据结构是线性链表、数组或循环链表。
8.如权利要求7所述的一种可设置多值域区间的编辑控件的创建方法,其特征是:步骤三中,所述的线性链表由依次链接的一组结点组成,结点数动态扩展,每一个结点对应一个四元组。
CNB2007101222112A 2007-09-24 2007-09-24 一种可设置多值域区间的编辑控件的创建方法 Expired - Fee Related CN100507845C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2007101222112A CN100507845C (zh) 2007-09-24 2007-09-24 一种可设置多值域区间的编辑控件的创建方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2007101222112A CN100507845C (zh) 2007-09-24 2007-09-24 一种可设置多值域区间的编辑控件的创建方法

Publications (2)

Publication Number Publication Date
CN101118492A CN101118492A (zh) 2008-02-06
CN100507845C true CN100507845C (zh) 2009-07-01

Family

ID=39054623

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2007101222112A Expired - Fee Related CN100507845C (zh) 2007-09-24 2007-09-24 一种可设置多值域区间的编辑控件的创建方法

Country Status (1)

Country Link
CN (1) CN100507845C (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9436437B2 (en) 2010-12-17 2016-09-06 Microsoft Technology Licensing, Llc Creation, editing and navigation of diagrams
CN102023869A (zh) * 2010-12-30 2011-04-20 深圳联友科技有限公司 一种控件输入值校验方法及系统
CN105162882A (zh) * 2015-09-25 2015-12-16 天脉聚源(北京)科技有限公司 控件间传输数据的方法和装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1369799A (zh) * 2001-02-12 2002-09-18 英业达股份有限公司 自动获取音量控制程序中控件的识别码数值的方法
CN1532691A (zh) * 2003-03-24 2004-09-29 用于在壳层浏览器中用户更改元数据的系统和方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1369799A (zh) * 2001-02-12 2002-09-18 英业达股份有限公司 自动获取音量控制程序中控件的识别码数值的方法
CN1532691A (zh) * 2003-03-24 2004-09-29 用于在壳层浏览器中用户更改元数据的系统和方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
为C++ Builder新增一个编辑控件及其数组控件. 王兆锐,陈欣,袁琪.沈阳工业大学学报,第22卷第2期. 2000
为C++ Builder新增一个编辑控件及其数组控件. 王兆锐,陈欣,袁琪.沈阳工业大学学报,第22卷第2期. 2000 *
在PB应用中创建和调用多条件动态检索窗口. 欧阳晓山,周云飞.南昌航空工业学院学报,第15卷第2期. 2001
在PB应用中创建和调用多条件动态检索窗口. 欧阳晓山,周云飞.南昌航空工业学院学报,第15卷第2期. 2001 *

Also Published As

Publication number Publication date
CN101118492A (zh) 2008-02-06

Similar Documents

Publication Publication Date Title
US10198422B2 (en) Information-processing equipment based on a spreadsheet
US8181157B2 (en) Custom language support for project documentation and editing
US10175682B2 (en) Automation control system point configuration from controller program files
US8032232B2 (en) Natively retaining project documentation in a controller
GB2479034A (en) Interface based on relationships between process control tags.
EP2104037A1 (en) Programmable controller programming with embedded macro capability
US10929339B2 (en) Generation of multiple worksheet exportation
KR101627769B1 (ko) Plc 제어 프로그램의 공용형식 변환장치 및 방법
US8793668B2 (en) Protocol independent programming environment
JP2008204237A (ja) プログラム作成支援装置およびプログラム実行装置
CN100507845C (zh) 一种可设置多值域区间的编辑控件的创建方法
CN104731588A (zh) 页面布局文件生成方法和页面布局文件生成装置
PH12015000246A1 (en) Process control system using typical and adapter components
CN107615191B (zh) 调试装置及调试方法
CN109522005A (zh) 跨平台图形化程序设计方法
CN112055018B (zh) 报文分析方法及装置
CN107391136A (zh) 一种基于流式的编程系统和方法
KR102357029B1 (ko) 컴퓨터 수치제어 공작기계의 대화형 프로그램에서 복합 공정 등록 장치 및 방법
CN107402764B (zh) 一种图形化页面程序功能特征码计算刷新方法
EP1347376B1 (de) Software zur Visualisierung hierarchisch stufbaren Objekten
CN103488477A (zh) Java接口的可视化编辑系统和可视化编辑方法
US11003598B2 (en) Data container for a control system of a technical installation
JP2551935B2 (ja) 図的言語処理方式
CN105630494A (zh) 一种可靠性分析系统
KR100423742B1 (ko) 순차기능챠트에 의한 전용 제어 시스템

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
EE01 Entry into force of recordation of patent licensing contract

Assignee: PKU International Healthcare Group Co., Ltd.

Assignor: Peking Founder Group Co., Ltd.|Beida Fangzheng Electronics Co., Ltd., Beijing

Contract fulfillment period: 2009.7.20 to 2014.7.19

Contract record no.: 2009110000194

Denomination of invention: Creation method of editing controls component capable of setting multiple range interval

Granted publication date: 20090701

License type: Exclusive license

Record date: 20090909

LIC Patent licence contract for exploitation submitted for record

Free format text: EXCLUSIVE LICENSE; TIME LIMIT OF IMPLEMENTING CONTACT: 2009.7.20 TO 2014.7.19; CHANGE OF CONTRACT

Name of requester: PEKING UNIVERSITY INTERNATIONAL HOSPITAL GROUP CO.

Effective date: 20090909

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090701

Termination date: 20190924

CF01 Termination of patent right due to non-payment of annual fee