车辆信息管理的开发毕业论文.doc_第1页
车辆信息管理的开发毕业论文.doc_第2页
车辆信息管理的开发毕业论文.doc_第3页
车辆信息管理的开发毕业论文.doc_第4页
车辆信息管理的开发毕业论文.doc_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

车辆信息管理的开发毕业论文1.引言随着计算机及网络技术的飞速发展,Internet/Intranet应用在全球范围内日益普及,当今社会正快速向信息化社会前进,信息系统的作用也越来越大。企业在正常运营中总是面对大量的车辆使用信息,随着企业的不断发展,大中型企业的车辆使用与管理工作一日复杂,司机的不固定,车辆的保修,报废等等,一系列问题干扰者我们。车辆管理信息系统可以减轻工作,将工作科学化、规范化,提高了企业的工作质量因此根据企业目前实际的管理情况开发一套车辆信息管理是十分必要的。1.1数据库应用技术现状数据库技术是现代信息科学与技术的重要组成部分,是计算机数据处理与信息管理系统的核心。数据库技术研究和解决了计算机信息处理过程中大量数据有效地组织和存储的问题,在数据库系统中减少数据存储冗余、实现数据共享、保障数据安全以及高效地检索数据和处理数据。随着计算机技术与网络通信技术的发展,数据库技术已成为信息社会中对大量数据进行组织与管理的重要技术手段及软件技术,是网络信息化管理系统的基础。本章主要介绍数据库技术的应用与发展、关系模型的基本概念、关系数据库的设计理论及数据库设计方法等内容,是学习和掌握现代数据库技术的基础1.2面对对象与可视化技术应用前景可视化技术使人能够直接对具有形体的信息进行操作,和计算机直接交流。这种技术已经把人和机器的力量以一种直觉而自然的方式加以统一,这种革命性的变化无疑将极大地提高人们的工作效率,用以前不可想象的手段来获取信息或发挥自己创造性的思维。随着科技的蓬勃发展,可视化技术的应用领域越来越广阔。从CT技术到数字人体,可视化技术在医疗与生命科学得到广泛应用;空间信息的可视化,在地理、军事等领域应用日益普遍。总之,可视化技术,应用前景无限广阔。 1.3课程设计的目的和任务 目的:熟悉一种可视化开发平台,掌握数据库应用当中的Java连接技术、嵌入式SQL语言使用技术、事务控制技术、事件程序设计技术、面向对象的可视化技术,掌握数据库应用的分析、设计实现的方法。任务:安装、设置PowerBuilder可视化开发环境并作出一系列技术实验,包括应用程序的创建,常用事件程序设计方法,一个表上提供的增、删、改的实现并且搭建应用原型,事务访问应用,事务控制技术,数据库连接策略。1.4车辆管理的现状现在大多数的车辆管理方式为手工处理,重复劳动多,劳动强度大,而且容易出错,随着企业的不断发展,大中型企业的车辆使用与管理工作一日复杂,司机的不固定,车辆的保修,报废等等,一系列问题干扰者我们。 1.5 车辆信息管理的可行性分析本次课程设计题目:“车辆信息管理的开发”主要目的是利用数据库软件编制一个管理软件,用以实现车辆信息查询和车辆信息编辑与使用以及日常工作等多项管理。同时对整个系统的分析、设计过程给出一个完整论证。车辆信息管理是一种基于集中统一规划的数据库数据管理新模式。在对司机、车辆的管理,其实是对车辆、车辆使用数据的管理。本系统的建成无疑会为管理者对车辆信息管理提供极大的帮助。本系统的设计主要从以下几方面做起:系统业务流程分析、系统的功能设计、系统的数据库结构设计等。作这些工作需对数据库知识有足够认识,并深入的了解PowerBuilder的使用和管理系统的相关知识。在信息时代的今天,人类需要对在政治、经济、军事、文化、科研、教育等领域产生的大量信息进行管理,并对数据进行加工处理,数据库技术则是信息管理与数据处理的先进技术。随着信息量的不断增加,作为计算机的三大主要应用(科学计算、过程控制和数据处理)之一的数据处理,已迅速上升为计算机应用的主要方面,数据库技术则成为人们日常生活中处理数据不可缺少的有力工具,并且现代的信息管理系统几乎都以数据库技术作为核心。现在大多数的车辆管理方式为手工处理,重复劳动多,劳动强度大,而且容易出错,新系统的使用能否可以很好的解决这些问题要看系统的可行性,可行性研究的目的是用最小的代价在尽可能短的时间内确定问题是否能够解决。系统的可行性分析有以下几个方面:(1)技术可行性:处理速度快、准确通过权限的设置,数据的安全性好、方便查询、管理等。 (2)经济可行性:系统建设不需要很大的投入、可缩减人力投入。(3)运行上可行性:本系统作为一个小型的图书馆信息管理系统,所耗费的资源非常的小。 (4)从各种社会因素可行性分析:可降低工作人员工作强度,提高效率,会得到学校工作人员的一致同意的。综上所述通过可行性分析认为新系统的开发方案切实可行,可进行开发。2.相关方法与技术本章内容主要以查阅文献为途径,总结概括出数据库应用相关的方法与技术,内容主要涉及到数据库应用系统体系结构、可视化面向对象技术、事件驱动程序设计、数据库事务控制技术、数据库连接策略。2.1 数据库应用系统体系结构数据库内部结构 PowerBuilder 数据库中的所有信息通常都存储在单个数据库 文件中,可以从一台计算机复制到另一台计算机。还可以为若干文件生 成数据库,但通常只有非常大的数据库才需要这样做。 除了数据库文件外, PowerBuilder 在运行数据库时还使用 另外两个文件。这两个文件是事务日志和临时文件。 数据库文件 在内部,数据库文件是由页 (磁盘的固定大小区域)组成的。数据访问层一次读取和写入一页上的数据。许多页 保存数据库表中的数据,而其它一些页则保存索引信息、与数据 库内数据的分发有关的信息等。 事务日志 事务日志是一个单独的文件,记录在数据库上执行的 所有操作。通常,它具有与数据库文件相同的名称,只是它以后 缀 .log 结尾,而不是以 .db 结尾。事务日志具有三个重要功能。 记录对数据执行的操作以支持恢复 如果数据库文件损坏, 您可以根据备份以及事务日志重新创建数据库。 提高性能 通过将信息写入事务日志,数据库服务器可以安 全地处理您的语句,而不必频繁写入数据库文件。 支持数据库复制 SQL 和PowerBuilder客户端实用程序 使用此文件复制对有时候连接到网络的便携式计算机上的数 据库的更改。 临时文件 在数据库服务器启动时该临时文件打开,在数据库服 务器结束时该临时文件关闭。顾名思义,临时文件是在服务器运 行时用来保存临时信息的。临时文件不保存需要在两个会话之间 保留的信息。 该临时文件存储在您的临时目录中。此目录的位置通常由 TEMP 环境变量标识。2.2可视化面向对象技术可视化(Visual)程序设计是一种全新的程序设计方法,它主要是让程序设计人员利用软件本身所提供的各种控件,像搭积木式地构造应用程序的各种界面。可视化程序设计最大的优点是设计人员可以不用编写或只需编写很少的程序代码,就能完成应用程序的设计,这样就能极大地提高设计人员的工作效率。能进行可视化程序设计的语言很多。在数据输入模块内部设计中,采用面向对象的设计方法。6面向对象的基本概念如下: 对象:对象是要研究的任何事物。从一本书到一家图书馆,单的整数到整数列庞大的数据库、极其复杂的自动化工厂、航天飞机都可看作对象,它不仅能表示有形的实体,也能表示无形的(抽象的)规则、计划或事件。对象由数据(描述事物的属性)和作用于数据的操作(体现事物的行为)构成一独立整体。从程序设计者来看,对象是一个程序模块,从用户来看,对象为他们提供所希望的行为。在对内的操作通常称为方法。 类:类是对象的模板。即类是对一组有相同数据和相同操作的对象的定义,一个类所包含的方法和数据描述一组对象的共同属性和行为。类是在对象之上的抽象,对象则是类的具体化,是类的实例。类可有其子类,也可有其它类,形成类层次结构。 消息:消息是对象之间进行通信的一种规格说明。一般它由三部分组成:接收消息的对象、消息名及实际变元。 面向对象主要特征: 封装性:封装是一种信息隐蔽技术,它体现于类的说明,是对象的重要特性。封装使数据和加工该数据的方法(函数)封装为一个整体,以实现独立性很强的模块,使得用户只能见到对象的外特性(对象能接受哪些消息,具有那些处理能力),而对象的内特性(保存内部状态的私有数据和实现加工能力的算法)对用户是隐蔽的。封装的目的在于把对象的设计者和对象者的使用分开,使用者不必知晓行为实现的细节,只须用设计者提供的消息来访问该对象。 继承性:继承性是子类自动共享父类之间数据和方法的机制。它由类的派生功能体现。一个类直接继承其它类的全部描述,同时可修改和扩充。继承具有传递性。继承分为单继承(一个子类只有一父类)和多重继承(一个类有多个父类)。类的对象是各自封闭的,如果没继承性机制,则类对象中数据、方法就会出现大量重复。继承不仅支持系统的可重用性,而且还促进系统的可扩充性。 多态性:对象根据所接收的消息而做出动作。同一消息为不同的对象接受时可产生完全不同的行动,这种现象称为多态性。利用多态性用户可发送一个通用的信息,而将所有的实现细节都留给接受消息的对象自行决定,如是,同一消息即可调用不同的方法。例如:Print消息被发送给一图或表时调用的打印方法与将同样的Print消息发送给一正文文件而调用的打印方法会完全不同。多态性的实现受到继承性的支持,利用类继承的层次关系,把具有通用功能的协议存放在类层次中尽可能高的地方,而将实现这一功能的不同方法置于较低层次,这样,在这些低层次上生成的对象就能给通用消息以不同的响应。在OOPL中可通过在派生类中重定义基类函数(定义为重载函数或虚函数)来实现多态性。 综上可知,在面对对象方法中,对象和传递消息分别表现事物及事物间相互联系的概念。类和继承是是适应人们一般思维方式的描述范式。方法是允许作用于该类对象上的各种操作。这种对象、类、消息和方法的程序设计范式的基本点在于对象的封装性和类的继承性。通过封装能将对象的定义和对象的实现分开,通过继承能体现类与类之间的关系,以及由此带来的动态联编和实体的多态性,从而构成了面向对象的基本特征。2.3事件驱动程序设计所谓事件驱动,简单地说就是你点什么按钮(即产生什么事件),电脑执行什么操作(即调用什么函数).当然事件不仅限于用户的操作. weWidgets的中所有可以处理事件的类都继承自wxEvtHandler,其中包含frames, buttons, menus, even documents,所有的窗体类(即从wxWindow继承的类)和程序类(application class). 这些类可以有一个事件表,用来绑定事件和被调用的函数(handler functions). 过程 3.2. 建立一个静态事件表(即编译时生成的事件表)的操作步骤建立一个新类(直接或间接从wxEvtHandler继承)为每个要处理的事件声明被调用的函数在被处理的事件所在的类的声明中加入宏DECLARE_EVENT_TABLE在宏BEGIN_EVENT_TABLE. END_EVENT_TABLE(就是事件表)中将函数与枚举的数字绑定(因为产生该类型的事件的按钮不唯一,要用枚举数来区分);有些事件不必与枚举数绑定,因为产生该类型的事件的对象可以确定(比如就是this).2.4数据库事务控制技术一 事务处理介绍 事务是这样一种机制,它确保多个SQL语句被当作单个工作单 元来处理。事务具有以下的作用: * 一致性:同时进行的查询和更新彼此不会发生冲突,其他 用户不会看到发生了变化但尚未提交的数据。 * 可恢复性:一旦系统故障,数据库会自动地完全恢复未完 成的事务。 二 事务与一致性 事务是完整性的单位,一个事务的执行是把数据库从一个一 致的状态转换成另一个一致的状态。因此,如果事务孤立执行时 是正确的,但如果多个事务并发交错地执行,就可能相互干扰, 造成数据库状态的不一致。在多用户环境中,数据库必须避免同 时进行的查询和更新发生冲突。这一点是很重要的,如果正在被 处理的数据能够在该处理正在运行时被另一用户的修改所改变, 那么该处理结果是不明确的。 不加控制的并发存取会产生以下几种错误: 1 丢失修改(lost updates) 当多个事务并发修改一个数据时,不加控制会得出错误的结 果,一个修改会覆盖掉另一个修改。 2 读的不可重复性 当多个事务按某种时间顺序存取若干数据时,如果对并发存 取不加控制,也会产生错误。 3 脏读(DIRDY DATA),读的不一致性 4 光标带来的当前值的混乱 事务在执行过程中它在某个表上的当前查找位置是由光标表 示的。光标指向当前正处理的记录。当处理完该条记录后,则指 向下一条记录。在多个事务并发执行时,某一事务的修改可能产 生负作用,使与这些光标有关的事务出错。 5 未释放修改造成连锁退出 一个事务在进行修改操作的过程中可能会发生故障,这时需 要将已做的修改回退(Rollback)。如果在已进行过或已发现错 误尚未复原之前允许其它事务读已做过修改(脏读),则会导致 连锁退出。 6 一事务在对一表更新时,另外的事务却修改或删除此表的 定义。 数据库会为每个事务自动地设置适当级别的锁定。对于前面 讲述的问题:脏读、未释放修改造成的连锁退出、一事务在对一 表更新时另外的事务却修改或删除此表的定义,数据库都会自动 解决。而另外的三个问题则需要在编程过程中人为地定义事务或 加锁来解决。 三 事务和恢复 数据库本身肩负着管理事务的责任。事务是最小的逻辑工作 单元,在这个工作单元中,对数据库的所有更新工作,要么必须 全部成功,要么必须全部失败(回退)。只要应用程序指定了某 段程序为一个事务并做了相应的处理(提交或回退),数据库系 统会自动维护事务本身的特性。2.5数据库连接策略1.首先SQL企业管理器中要有事先建好的数据库,然后通过PB自带的db控制画板链接sql数据库.2.如图设置新的文件.随即弹出初始化文件对话框。在第一空格随便填入一个PB数据库名字.第二个空格是服务器.填入(local)在第三个空格出填写sa默认超级用户管理员.然后再Database空格处填写在SQL企业管理器建好的数据库名字.确认无误后,点击ok然后双击你所起名字的数据库小图标即链接成功!望采纳1.3 课题分析3.1选题背景 随着企业的不断发展,大中型企业的车辆使用与管理工作一日复杂,司机的不固定,车辆的保修,报废等等,一系列问题干扰者我们。由此车辆管理信息系统产生了。3.2 数据需求 车辆的基本信息:车辆牌照号,品牌,购买日期,购买金额等等;司机的基本信息:司机编号,司机姓名,驾驶历史,驾驶等级,电话,家庭住址;车辆和司机的关系属性:驾驶时间,距离等等。3.3 功能需求3.3.1系统主要实现以下几个方面的功能1.用户登录 2.修改密码 3.车辆信息编辑(添加,删除,修改)及查询 4.司机信息编辑(添加,删除,修改)及查询5.车辆使用信息编辑(添加,删除,修改)及查询6.系统维护(设置用户权限)3.3.2功能描述车辆管理包括用户登录、车辆信息编辑、车辆信息查询、车辆使用信息查询、司机信息编辑、司机信息查询、车辆使用信息编辑、车辆使用信息查询、车辆使用信息编辑及系统维护等功能。 用户登录,用户必须使用正确的用户名和密码才能访问系统;车辆信息编辑,实现对车辆信息的添加、修改和删除的功能;司机信息查询,实现了详细查询司机的信息。同时对车辆和司机信息的进行管理,车辆使用信息查询及编辑,是更好地给司机安排车辆。系统维护,系统管理员可以注册用户,还可以设置新用户的可编辑及查询的权限。3.3.3功能需求模型3.3.4安全需求数据库级的安全性控制一般采用用户标识与口令鉴别、存取控制、视图和数据加密等安全技术。本车辆管理系统采用用户名标示与密码鉴别技术来实现安全控制。考虑到不同用户的权限不同,第一次进入该系统时应该向系统管理员申请注册一个用户名和密码,并完整的填写相关信息,同时存入数据库用户权限表中。这样系统管理员就可赋予不同用户不同的权限。每位用户根据自己的身份不同,拥有不同的权限,包括可编辑,可查询,可维护系统等。系统管理员有权力行使所有的管理功能,普通用户只能进行一般的编辑或查询,而系统管理员还有维护系统的权限。3.3.5一致性需求在车辆管理系统相关的表之间,有较强的关联性,为了实现一致性的需求,我们在各个表之间建立起了一致性约束。例如在车辆信息编辑中,想删除车辆,系统会提示:该车辆有使用信息记录,禁止删除。3.3.6完整性需求根据车辆管理系统的要求,为保持数据的完整性,采用了数据库的事务机制,防止出现操作故障。4 课题设计4.1 总体设计本次车辆信息管理系统采用PowerBuilder8.0的可视化开发技术,按照软件开发的流程完成。系统分三个大的模块,一个是系统维护模块,主要要以下俩个子模块组成,用户口令更改模块和用户增删改模块,第二个功能模块是车辆信息维护模块,由四个子模块构成,分别是车辆使用信息子模块,司机信息维护子模块,车队信息维护子模块和司机信息维护子模块。这四个模块分别对应数据库里四张表的增删改操作。第三个模块是查询模块,此模块实现了对车辆,司机,车队,车辆使用信息的查询功能。4.1.1 应用程序功能的几个事件(1) Open事件(2) Click事件(3) Start事件(4) Stop事件(5) 删除事件(6) 添加事件(7) 修改事件(8) 构造函数(9) 对窗口的继承4.1.2 主控功能的实现4.1.2 号例子的实现4.1.3 号例子的实现4.1.4 号例子的实现4.1.5 数据库设计表名列名列代码类型大小是否可以为空车辆信息车辆编号Xlidvoidchar20N厂家Cjvoidchar20Y出厂日期Ccrqdata20Y购买日期Gmrqdata20Y大修次数Xiuint4Y备注Bzvoidchar50Y司机信息司机编号Sjidvoidchar20N姓名Xmvoidchar20Y身份证号Sfzvoidchar20Y性别Xbvoidchar2Y民族Mzvoidchar2Y家庭住址Adrvoidchar20Y联系电话Telvoidchar20Y驾龄Jsagevoidchar4Y驾驶等级Gradevoidchar4Y车队信息车队编号Cdidvoidchar20Y名称Namevoidchar20N车辆使用情况车辆编号Xlidvoidchar20N司机编号Sjidvoidchar20N使用日期StardatadataY使用时间StartimetimeY截止日期EnddatadataY截止时间EndtimetimeY公里数DlintY司机聘请信息司机编号Sjidvoidchar20N车队编号Cdidvoidchar20N聘请开始日期DatadataN5 课题实现5.1应用程序包装的设计与实现5.1.1创建workspace进入PowerBuilder8.0开发环境,单击工具栏上的“New”图标,打开“New”对话框;选择“Workspace”选项卡并选择“Workspace”图标,单击OK按钮打开“New Workspace”对话框;设置好工作区保存的路径和文件名后,单击保存按钮创建一个新的工作区。5.1.2创建target首先鼠标在新建的workspace上右击,选择New,然后再给target取个名字,最后点击OK后就生成了target。5.1.3创建专用库和共享库在车辆信息管理系统中,只创建一个共享库,在共享库中定义共享的函数,主窗口以及主菜单。根据具体的业务需求,在车辆信息管理系统中创建专用库,分别实现5大功能。在共享库中,首先创建一个主窗口,然后创建菜单,接着创建登录窗口和修改密码窗口,最后创建系统信息窗口。另外在共享库中创建连接数据库函数和断开连接数据库函数,以及定义登录系统所需的函数。在专用库中创建与每个模块相关的窗口和数据窗口。 5.1.4应用程序的包装实现 5.2数据库访问策略的设计与实现PowerBuilder8.0与数据库连接可以通过通用接口与专用数据库接口两种方式来实现,在图书信息系统开发的过程中,是通过ODBC与数据库连接的。通过ODBC连接数据库需要经过两个步骤:一是配置ODBC数据源,二是连接到数据库。1.配置数据源(1)启动PowerBuilder后,单击工具栏上的“DB Profiles”图标,如下图所示。 (2)用鼠标双击“ODB ODBC 下“Utilities 内的”“Create ODBC Data Source”选项,打开如下图所示“创建新数据源”对话框。 (3)选择“用户数据源”选项,再一直按“下一步”,打开如下图所示的“ODBC Configuration”对话框。 (4)在“ODBC”标签页输入数据源的名称,在“Login”标签页输入连接数据库的账号和密码,在“Database”标签页输入数据库的名称和导入已经建好的数据库“mydb.db”后,测试成功后,单击“确定”按钮后,即可完成新数据源的创建。 2.连接到ODBC数据库(1)单击工具栏上的“Database”图标,打开“Database Connection”图标。(2)在“ODB ODBC”选项上,右击鼠标,选择“New profile”,打开“ODBC Profile Setup”。填写文件名称和找到数据源名称,测试成功后,即可完成数据库文件的创建,如下图所示。 (3)单击工具栏上的“ODBC Profile”图标,打开“Database Profiles”对话框,如图所示。 (4)选中已配置好的数据源“hospital”,单击“Connect”按钮,就可以连接到该数据源所定义的数据库上。5.3创建父窗口5.3.1父窗口resize事件:Integer li_count,li_tpcountInteger li_i,li_tpiThis.Setredraw(False)/控件数li_count = upperbound(This.Control)li_allcount = li_count/ 重新按照窗口大小来设定各控件的位置及大小FOR li_i = 1 TO li_countChoose Case This.Controlli_i.TypeOf()Case checkbox!icbx_obj = This.controlli_iicbx_obj.x = newwidth * ir_xli_iicbx_obj.y = newheight * ir_yli_iCase radiobutton!irb_obj = This.controlli_iirb_obj.x = newwidth * ir_xli_iirb_obj.y = newheight * ir_yli_iCase commandbutton!icb_obj = This.controlli_iicb_obj.x = newwidth * ir_xli_iicb_obj.y = newheight * ir_yli_iicb_obj.width = newwidth * ir_widthli_iicb_obj.height = newheight * ir_heightli_iCase picture!ip_obj = This.controlli_iip_obj.x = newwidth * ir_xli_iip_obj.y = newheight * ir_yli_iip_obj.width = newwidth * ir_widthli_iip_obj.height = newheight * ir_heightli_iCase datawindow!idw_obj = This.controlli_iidw_obj.x = newwidth * ir_xli_iidw_obj.y = newheight * ir_yli_iidw_obj.width = newwidth * ir_widthli_iidw_obj.height = newheight * ir_heightli_iCase dropdownlistbox!iddlb_obj = This.controlli_iiddlb_obj.x = newwidth * ir_xli_iiddlb_obj.y = newheight * ir_yli_iiddlb_obj.width = newwidth * ir_widthli_iCase dropdownpicturelistbox!iddplb_obj = This.controlli_iiddplb_obj.x = newwidth * ir_xli_iiddplb_obj.y = newheight * ir_yli_iiddplb_obj.width = newwidth * ir_widthli_iCase listbox!ilb_obj = This.controlli_iilb_obj.x = newwidth * ir_xli_iilb_obj.y = newheight * ir_yli_iilb_obj.width = newwidth * ir_widthli_iilb_obj.height = newheight * ir_heightli_iCase multilineedit!imle_obj = This.controlli_iimle_obj.x = newwidth * ir_xli_iimle_obj.y = newheight * ir_yli_iimle_obj.width = newwidth * ir_widthli_iimle_obj.height = newheight * ir_heightli_iCase editmask!iem_obj = This.controlli_iiem_obj.x = newwidth * ir_xli_iiem_obj.y = newheight * ir_yli_iiem_obj.width = newwidth * ir_widthli_iiem_obj.height = newheight * ir_heightli_iCase tab!it_obj = This.controlli_iit_obj.x = newwidth * ir_xli_iit_obj.y = newheight * ir_yli_iit_obj.width = newwidth * ir_widthli_iit_obj.height = newheight * ir_heightli_ili_tpcount = upperbound(it_obj.control)for li_tpi = 1 to li_tpcounttabresize(it_obj,li_tpi,li_allcount)nextCase groupbox!igb_obj = This.controlli_iigb_obj.x = newwidth * ir_xli_iigb_obj.y = newheight * ir_yli_iigb_obj.width = newwidth * ir_widthli_iigb_obj.height = newheight * ir_heightli_iCase hscrollbar!ihsb_obj = This.controlli_iihsb_obj.x = newwidth * ir_xli_iihsb_obj.y = newheight * ir_yli_iihsb_obj.width = newwidth * ir_widthli_iihsb_obj.height = newheight * ir_heightli_iCase picturebutton!ipb_obj = This.controlli_iipb_obj.x = newwidth * ir_xli_iipb_obj.y = newheight * ir_yli_iipb_obj.width = newwidth * ir_widthli_iipb_obj.height = newheight * ir_heightli_iCase listview!ilv_obj = This.controlli_iilv_obj.x = newwidth * ir_xli_iilv_obj.y = newheight * ir_yli_iilv_obj.width = newwidth * ir_widthli_iilv_obj.height = newheight * ir_heightli_iCase picturelistbox!iplb_obj = This.controlli_iiplb_obj.x = newwidth * ir_xli_iiplb_obj.y = newheight * ir_yli_iiplb_obj.width = newwidth * ir_widthli_iiplb_obj.height = newheight * ir_heightli_iCase singlelineedit!isle_obj = This.controlli_iisle_obj.x = newwidth * ir_xli_iisle_obj.y = newheight * ir_yli_iisle_obj.width = newwidth * ir_widthli_iisle_obj.height = newheight * ir_heightli_iCase treeview!itv_obj = This.controlli_iitv_obj.x = newwidth * ir_xli_iitv_obj.y = newheight * ir_yli_iitv_obj.width = newwidth * ir_widthli_iitv_obj.height = newheight * ir_heightli_iCase userobject!iuo_obj = This.controlli_iiuo_obj.x = newwidth * ir_xli_iiuo_obj.y = newheight * ir_yli_iiuo_obj.width = newwidth * ir_widthli_iiuo_obj.height = newheight * ir_heightli_iCase vscrollbar!ivsb_obj = This.controlli_iivsb_obj.x = newwidth * ir_xli_iivsb_obj.y = newheight * ir_yli_iivsb_obj.width = newwidth * ir_widthli_iivsb_obj.height = newheight * ir_heightli_iCase graph!igr_obj = This.controlli_iigr_obj.x = newwidth * ir_xli_iigr_obj.y = newheight * ir_yli_iigr_obj.width = newwidth * ir_widthli_iigr_obj.height = newheight * ir_heightli_iCase olecontrol!iole_obj = This.controlli_iiole_obj.x = newwidth * ir_xli_iiole_obj.y = newheight * ir_yli_iiole_obj.width = newwidth * ir_widthli_iiole_obj.height = newheight * ir_heightli_iCase richtextedit!irte_obj = This.controlli_iirte_obj.x = newwidth * ir_xli_iirte_obj.y = newheight * ir_yli_iirte_obj.width = newwidth * ir_widthli_iirte_obj.height = newheight * ir_heightli_iCase statictext!ist_obj = This.controlli_iist_obj.x = newwidth * ir_xli_iist_obj.y = newheight * ir_yli_iist_obj.width = newwidth * ir_widthli_iCase line!iln_obj = This.controlli_iiln_obj.beginx = newwidth * ir_xli_iiln_obj.beginy = newheight * ir_yli_iiln_obj.endx = newwidth * ir_widthli_iiln_obj.endy = newheight * ir_heightli_icase HProgressBar!ihpb_obj = This.controlli_iihpb_obj.x = newwidth * ir_xli_iihpb_obj.y = newheight * ir_yli_iihpb_obj.width = newwidth * ir_widthli_iihpb_obj.height = newheight * ir_heightli_icase HTrackBar!ihtb_obj = This.controlli_iihtb_obj.x = newwidth * ir_xli_iihtb_obj.y = newheight * ir_yli_iihtb_obj.width = newwidth * ir_widthli_iihtb_obj.height = newheight * ir_heightli_i case Oval!iov_obj = This.controlli_iiov_obj.x = newwidth * ir_xli_iiov_obj.y = newheight * ir_yli_iiov_obj.width = newwidth * ir_widthli_iiov_obj.height = newheight * ir_heightli_i case PictureHyperLink!iphl_obj = This.controlli_iiphl_obj.x = newwidth * ir_xli_iiphl_obj.y = newheight * ir_yli_iiphl_obj.width = newwidth * ir_widthli_iiphl_obj.height = newheight * ir_heightli_i case Rectangle!ir_obj = This.controlli_iir_obj.x = newwidth * ir_xli_iir_obj.y = newheight * ir_yli_iir_obj.width = newwidth * ir_widthli_iir_obj.height = newheight * ir_heightli_i case RoundRectangle!irr_obj = This.controlli_iirr_obj.x = newwidth * ir_xli_iirr_obj.y = newheight * ir_yli_iirr_obj.width = newwidth * ir_widthli_iirr_obj.height = newheight * ir_heightli_icase vscrollbar!ivsb_obj = This.controlli_iivsb_obj.x = newwidth * ir_xli_iivsb_obj.y = newheight * ir_yli_iivsb_obj.width = newwidth * ir_widthli_iivsb_obj.height = newheight * ir_heightli_icase StaticHyperLink!ishl_obj = This.controlli_iishl_obj.x = newwidth * ir_xli_iishl_obj.y = newheight * ir_yli_iishl_obj.width = newwidth * ir_widthli_iishl_obj.height = newheight * ir_heightli_icase VProgressBar!ivpb_obj = This.controlli_iivpb_obj.x = newwidth * ir_xli_iivpb_obj.y = newheight * ir_yli_iivpb_obj.width = newwidth * ir_widthli_iivpb_obj.height = newheight * ir_heightli_icase VTrackBar!ivtb_obj = This.controlli_iivtb_obj.x = newwidth * ir_xli_iivtb_obj.y = newheight * ir_yli_iivtb_obj.width = newwidth * ir_widthli_iivtb_obj.height = newheight * ir

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论