




已阅读5页,还剩61页未读, 继续免费阅读
(计算机应用技术专业论文)用户界面配置系统的研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
用户界面配置系统的研究与实现 中文摘要 中文摘要 用户界面( u i ) 是用户直接与软件进行交互的部分,其舒适度和美观性备受用户 关注和重视。传统开发和构造人机界面的方法存在一定局限性,它忽略了用户界面设 计的交互性。 现有用户界面管理技术,大都是开发人员针对所开发系统做局部界面修改工作, 不具备通用性:对界面进行修改,往往要涉及到对程序功能代码的修改,工作量大, 而且容易出错:在开发另一个与此相似的项目时,必须要对界面进行大量的重复设计。 本文首先对用户界面管理技术进行了深入研究,分析了界面配置、界面定制和界 面控制三者之间的区别和联系,然后对流技术、动态创建窗体技术、控件技术等关键 技术进行了深入讨论,最后提出一种解决方案,即用户界面配置系统,方便用户在后 期对程序界面重新进行可视化设计。 论文最后对本系统的研究与设计做了总结,并提出今后进一步研究方向。 关键词:用户界面、界面配置、控件、流技术、d f m 作者;任小艳 指导教师:孙涌黄良斌 a b s t r a c t u s e ri n t e r f a c e ( u di sab r i d g eb e t w e e np e r s o na n ds o f t w a r e , s oi t sc o m f o r ta n da r t i s t i c a p p e a r a n c ei sv e r yi m p o r t a n t t r a d i t i o n a lt e c h n i q u e sf o rd e v e l o p m e n ta n dc o n s t r u c t i o no f u ih a v es o m ed e f e c t s ,w h i c ha r cm a i n l yn o tc o n s i d e r i n gw i t hi n t e r a c t i v ep r o p e r t y n o w a d a y s ,a l t h o u g hs o m eu s e ri n t e r f a c em a n a g e m e n tt e c h n i q u e sh a v ep a r t l y r e s o l v e dp r o b l e m sm e n t i o n e da b o v e ,i t sl o c a l i t ya n dc o m p l e x i t ys t i l li sd i s c o m m o d i o u st o n s e r u s e rh a st od os o m er e d u p l i c a t ew o r kw h e nt h e yd e s i g na n a l o g o u si n t e r f a c e f i r s t l y , t h ep a p e rs t u d i e st h eu i m st e c h n i q u e s ,a n a l y z e st h ed i f f e r e n c ea n dc o n t a c t a m o n gu ic o n f i g u r a t i o n , u ic u s t o m i z a t i o na n du ic o n t r 0 1 s e c o n d l y , t h ep a p e rd i s c u s s e s s o m ep i v o t a lt e c h n i q u ea b o u t $ l l e a m ,c o n t r o la n dc o n s t r u c t i n gf o r md y n a m i c a l l y a tl a s t t h ep a p e rd r a w sap r o j e c t t h a ti s ,u s e ri n t e r f a c ec o n f i g u r e ds y s t e m u s e rc a nm o d i f y t h e i ri n t e r f a c eu n d e rt h i ss y s t e mr e p e a t e d l y t h e r e f o r e ,t h i ss y s t e mi sn o to n l ya l l - p u r p o s e b u ta l s oh a st h ee x c e l l e n tr e u s a b i l i t y , i n t u i t i o na n dc o n v e n i e n c e i nt h ef i n a lc h a p t e r , w es u n l a l a l i z ct h ew o r k a l s ow ep r o p o s e ds o m ep r o b l e m st ob e a n a l y z e da n ds o l v e di nf u r t h e rw o r k k e y w o r d s :u s e ri n t e r f a c e ;u ic o n f i g u r a t i o n ;c o n t r o l ;s t r e a mt e c h n i q u e ;d f m w r i t t e nb y :r e nx i a o y a n s u p e r v i s e db y :s u ny o n g h u a n gl l a n g b i n 苏州大学学位论文独创性声明及使用授权声明 学位论文独创性声明 本人郑重声明:所提交的学位沦文是本人在导师的指导f ,独立进行研究:f :作所 取得的成果。除文中已经注明引用的内容外,本论文不含其他个人或集体已经发表或 撰写过的研究成果,也不含为获得苏州大学或其它教育机构的学位证书而使用过的材 料。划本文的研究作出重要贡献的个人和集体,均己在文中以明确方式标明。本人承 担本声明的法律责任。 研究生签名:储彬i 二1 学位论文使用授权声明 期 l 珑 苏州大学、中困科学技术信息研究所、国家图书馆、清华大学论文合作部、中幽 社科院文献信息情报中心有权保留本人所送交学位论文的复印件和电子文档,可以采 用影印、缩印或其他复制手段保存论文。本人电子文档的内容和纸质论文的内容桐一 致。除在保密期内的保密论文外,允许论文被查阅和借阅,可以公稚( 包括刊登) 论 文的全部或部分内容。论文的公布( 包括刊登) 授权苏州大学学位办办理。 研究生签名:彳复进同 期 铆签名:舭同j 【 = 逻则 用户界面配置系统的研究与实现第一章绪论 第一章绪论 用户界面( u i ) 是软件系统的重要组成部分,它负责接受用户的输入信息并显示 输出系统运行的结果,是人与机器进行交互的平台i l 】。对于个产品及其可用性的满 意度,很大一部分用户将其归结为对其用户界面的满意度1 2 1 。因此,从某种意义上来 说,界面对于用户而言就是整个软件系统 3 1 。 近年来,随着软件工程学的迅速发展、新一代计算机技术研究的推动,以及网络 技术的突飞猛进,用户界面设计与开发已经成为国际计算机界最为活跃的研究方向。 它是计算机科学中最年轻的分支之一,是计算机科学与心理学、图形艺术、认知科学 和人机工程学的交叉研究领域。因此,了解一下用户界面的发展状况及其研究现状就 变得很有意义。 1 1 用户界面概述 用户界面( u i ) 又称为人机界面( h u m a n m a c h i n ei n t e r f a c e ) ,是人与机器之间传 递和交换信息的媒介,包括硬件界面和软件界面。人们一般将其理解为计算机人机界 面【1 1 早期人机交互使用的是简单而笨拙的文本输入输出方式,此时计算机用户与计 算机之间可借助一种双方都能理解的语言进行交互式对话。但命令语言一般要求惊人 的记忆和大量的训练,并且容易出错,使入门者望而生畏;现在的图形用户界面综合 利用计算机强大的处理能力、新型输入,输出设备以及先进的软件技术,使入机交互 手段丰富而高效【4 】。它极大地方便了非专业用户的使用,人们不再需要死记硬背大量 的命令,而可以通过窗口、菜单等方便地进行操作;多通道用户界面则充分利用一个 以上的感觉和运动通道的互补特性来捕捉用户的意向,从而增进了人机交互中的自然 性,是用户界面未来发展的方向。 目前人们主要使用的是图形用户界面( g u i ) ,其成熟的开发技术和广泛的使用 空间将使其在相当长时间内仍处于主流地位。美国b r o w n 大学原计算机系主任、著 1 第一章绪论 用户界面配置系统的研究与实现 名的计算机图形学家a v a nd a m 曾在s i g g r a p h 9 5 上称 5 1 ,“虽然各种三维图形的 应用发展得很快,如虚拟现实、科学计算可视化等,但g u i 、3 dw i d g e t 等都将长期 存在”。 从长远来看,在g u i 的基础上,用户界面必将会朝着以下几个方向发展: 1 高科技化 信息技术的革命,带来了计算机业的巨大变革。计算机越来越趋向平面 化、超薄型化;输入方式已经由单一的键盘、鼠标输入,朝着多通道输入发 展。追踪球、触摸屏、光笔、语音输入等竞相登场:蓝牙等技术的出现,改 变了接口技术;多媒体技术、虚拟现实及强有力的视觉工作站提供了真实、 动态的影像和刺激灵感的用户界面。在计算机系统中,各种技术各显其能, 使产品的造型设计更加丰富多彩,变化纷呈。 2 自然化 随着硬件技术的发展以及计算机图形学、软件工程、人工智能、窗口系 统等软件技术的进步,人们不仅仅满足于通过屏幕或打印输出信息,还进一 步要求能够通过视觉、听觉、嗅觉、触觉以及形体、手势或口令,更自然地 “进入”到工作空间中去,形成人机“直接对话”,从而取得“身临其境” 的体验。 3 人性化 现代设计已经从功能主义逐步走向多元化和人性化。今天的消费者纷纷 要求表现自我意识、个人风格和审美情趣,反映在设计上亦使产品越来越丰 富、细化,体现一种人情味和个性。一方面要求产品功能齐全、高效,适用 于人的操作使用,另一方面又要满足人们的审美和认知的精神需要。 1 2 课题研究背景 随着软件系统规模的不断扩大,开发大型软件系统所耗费的时间和成本也成倍增 加。用户界面在应用软件中平均占开发量的4 8 和运行时间的5 0 1 6 1 ,提高用户界面 旦墨耍堡兰墨竺竺里壅兰壅墨 妻二兰箜丝 的开发效率,无疑是提高整个软件系统开发效率非常有效的手段。然而,传统的开发 和构造人机界面的方法还存在一定的局限性:界面的主要存在方式仍然是固化在程序 中以供运行,对于界面与应用的分离和管理并没有规范化的考虑 7 1 ;没有考虑到与人 的认知和行为有关的认知模型,忽略了用户界面设计的交互性,由美工人员甚至是程 序设计人员按照自己的主观喜好设计自己“心目中”的界面;对所有用户展现的都是 同一种形式,不能对不同用户的不同需求进行相应的调整。雨实际上,开发人员在提 交产品后经常遇到客户对界面外观不满意,要求对界面元素位置、大小、色彩进行修 改,对特定部门删除一些控件和添加新控件的情况。重复繁琐的界面修改工作让开发 人员不胜其烦。 因此,需要通过专门的工具来管理软件系统的用户界面,为界面设计者提供可视 化、规范化的手段来实现从用户需求到实际界面的映射。人机交互技术成了2 1 世纪 信息领域需要解决的重大课题。 美国2 1 世纪信息技术计划中的基础研究内容为4 项:软件、人机界面、网络、 高性能计算。其中,人机建模研究在信息技术中被列为与软件和计算机并列的六项国 家关键技术之一,并被认为“对于计算机工业有着突出的重要性,对其它工业也是很 重要的”。美国国防关键技术不仅把人机交互列为软件技术发展的重要内容之一,而 且还专门增加了与软件技术并列的人机界面这项内容。日本也提出了e p i e n d 2 1 计划 ( f u t u r ep e r s o n a l i z e di n f o r m a t i o ne n v i r o n m e n td e v e l o p m e n t ) ,其目标就是要开发2 1 世纪个性化的信息环境。 我国在人机界面方面的设计与国际同类研究相比还存在较大差距。目前的研究仅 仅着重于支持界面的软件和硬件,对界面本身还缺少深入的研究,用户界面的设计还 没有成为软件设计中独立的一部分,也缺少新的人机界面交互技术。而另一方面,计 算机科学的发展和计算机的普及应用却对入机界面的研究提出了越来越高的要求。 当前,对用户界面开发工具的定义有很多,其中作为支持人机交互软件开发环境 的用户界面管理系统( u s e ri n t e r f a c em a n a g e m e n ts y s t e m ,u 1 m s ) 因其具备抽象程度 高等许多优点而正日益受到人们的关注。 u i m s 是借鉴数据库管理系统( d a t a b a s em a n a g e m e n ts y s t e m s ,d b m s ) 的一些 兰= 皇堑堡 旦墨耍竺兰墨竺竺堡壅皇壅墨 观念产生的。数据库管理系统在低层次的数据和文件之上实现了一个更高效、更有用 的抽象层。由于这种抽象,数据库管理系统将开发者和使用者隔离在底层细节之外, 从而使冗长乏味的底层工作透明化和自动化。同样的,u i m s 的提出也是为了抽象输 入输出设备等一些底层细节,在更高的层次上为设计者提供标准和自动化的用户界面 生成工具。迄今为止,国内外己经研制开发了多种类型的试验性和商品化u i m s ,受 到了系统开发者、用户接口设计者、最终用户和软件制造商等各类用户的普遍重视。 它已经成为人机交互和软件工程学中的一个重要研究方向。 自n e w m a n 于1 9 6 8 年公布了公认的第一个u i m s :r e a c t i o nh a n d l e r 以来,u l m s 发展至现在已经经历了四代的变迁i s l : 1 第一代u i m s :仅供程序开发人员适用的外观原型生成器和显示器管理器。这些 系统面向特定交互形式的h c i ( h u m a nc o m p u t e ri n t e r a c t i o n ) 的开发过程,通常 因设备和应用程序丽异。 2 第二代u i m s :多注重于提供对h c i 的运行支持而忽略对设计过程的支持,也仅 仅是开发人员而非用户使用的工具第一代u i m s 通常用符合b a c k u s n a u r 语法 的宏语言描述h c i ,第二代则改用状态转换图。 3 第三代u i m s :不仅注重对h c i 的运行支持,也支持h c i 开发过程中的设计活动, 提供直接操纵( d i r e c tm a n i p u l a t i o n ) 功能,使用第三代u i m s 来开发h c i 通常不 需要大量编程现今开发的u i m s 大多属于第三代。 4 第四代u i m s :这类u i m s 不仅支持用直接操纵的方式来生成界面,其生成的界 面本身也是支持直接操纵的,通常表现于界面是由可动态操纵( 0 j 建、删除、修 改) 的界面对象组成。支持用户定制是第四代u i m s 中一个重要的特点,也即最 终用户可修改性( e n du s e r a d a p t a b i l i t y ) 一即在系统中同时提供静态,动态界面定 制的支持。所谓界面定制是指用户可以控制界面的外观和内部功能。静态界面定 制的含义是用户通过一个定义文件定义所有的界面元素的外观和功能,系统运行 时的界面元素集是定制文件中定义的界面元素集的一个子集,可以动态替换,但 定制文件在运行期间是静态的,即在运行时,用户不能创建一个定制文件中没有 定义的新界面元素,也不能对己有界面元素的属性进行修改。而动态定制则允许 用户界面配置系统的研究与实现第一章绪论 用户在系统运行期间对界面元素进行动态的创建、删除和修改。真正意义上的界 面定制应当是动态的,应当能够识别用户的定制操作,且即刻将定制的结果反映 出来,实现“所见即所得”的定制效果。如今开发的u i m s 很少量的属于第四代。 第四代的u i m s 必将成为晃面交互技术中的一大趋势,人机交互的一大利器。 1 3 国内外研究现状 近年来,国内外很多学者都对用户界面管理相关内容进行了广泛和深入的探索研 究,并取得了良好的效果。 b u x t o n 等于1 9 8 3 年开发了一个用户界面管理系统| 9 1 ( u i m s ) 。该系统分为界面 设计实现工具和运行时支持工具包两部分。两部分相互协作,实现了与输入输出设备 无关、与机器无关、对立于特定语言之外以及可移植性等特性。r o b e r t 等开发了面向 用户界面与应用松散耦合的轻量级用户界面管理系统h y p e t l o l ,h y p e 屏蔽了下层的 窗口系统,使得程序员仅仅借助h y p e 即可实现多种应用程序用户界面的快速交互创 建和管理。k e v i n 等为了增强交互系统的可塑性,提出了在交互式软件中定义入机交 互的抽象用户界面模型和符号【n l ,并定义了输入输出和计算机组件之间的交互方式。 程华等提出了一个面向对象的用户界面管理系统g u i d i s l l 2 1 ,充分考虑了许多工 程应用系统用户界面的特点,并采用面向对象、广播机制、与外部任务通讯和多层次 用户界面生成工具的技术。田边等提出基于持久存储机制实现的用户界面管理系统 p d u i m s ,利用面向对象中提供的串行化方法,将实例的状态信息转化为串行的流, 通过i o 函数保存到持久存储介质中,在显示时利用反串行化方法重新生成界面。但 其使用二进制数据流作为载体,在直观性和可扩展性上存在一些缺点。王云鹏等开发 的基于x m l 的用户界面管理系统( u i m s ) 【1 3 】中,将界面配置文件用x m l 来描述, 实现了界面和功能的分离,容易扩展。但其缺点是开发人员需要对所有允许被定制的 界面进行x m l 形式的描述,无形中大大增加了开发人员的工作量。李诺等实现了对 w e b 应用程序界面的定制,但其适用范围有一定的局限性【1 4 l 。刘艺在r a d 和o o p 之间找到了平衡点,以面向对象的思维方式来利用r a d ,也实现了界面与业务的分 离1 1 5 j 。 5 苎= 兰堕堡 旦墨塑墼墨墨竺竺堡壅皇壅墨 此外,在大型的软件设计之中也都已经一定程度的加入了用户界面定制技术,如 o f f i c e 的自定义工具栏及宏的运用、q q 中皮肤设计工具、及部分软件中的换肤功能。 但是它们都是丌发人员针对自己所开发的系统所做的局部的界面定制工作,不能针对 整个系统和所有的软件系统,因此不具备通用性。 总而言之,国内外对界面管理的研究已经很多,也已经开发了一些界面管理系统, 实现了部分界面的定制。但其大都有一定的局限性,在通用性、可扩展性以及直观性、 方便性方面不能很好地满足用户的需求。 从发展的眼光来看,界面( g u i ) 和业务( b u s i n e s s ) 的分离是开发可维护、易 扩展、长寿命应用系统的关键,也是实现多层分布式系统的必经之路。个性化界面定 制将是未来用户界面的功能特性之一未来用户界面将逐步做到。计算机适应人”, 从追求“容易实现”到“容易学习和容易使用”,将明显突出用户本身的兴趣和爱好。 1 4 课题的主要工作 本课题通过对用户界面开发现状的分析与研究,结合目前现有界面管理技术、流 技术和组件开发技术,围绕如何提高最终界面可修改性和可扩展性,本着满足用户、 方便程序员的原则,设计了用户界面配置系统。本课题的主要工作如下: 1 在分析目前界面管理系统实现最终用户修改界面时所采用的三种方法的基础上, 提出一种以界面配置为主,界面定制和界面控制为辅,三者相结合的设计方案。 2 分析对比当前界面配置系统在选择界面配置文件时所采用的各种形式,深入研究 了d f m 文件结构以及流技术对界面组件属性存取所起到的关键作用,提出以 d f m 文件作为界面配置文件的方法。 3 结合设计模式思想,在d e l p h i 平台上实现了用户界面配置系统,包括前台界面设 计控件和后台界面编辑器。 4 比较d e l p h i 与c + + b u i l d e r 底层内核的关联,将本系统成功移植到c + + b u i l d e r 平台上,进一步扩大了系统的通用性。 用户界面配置系统的研究与实现第一章绪论 1 5 本文的组织结构 本文的组织结构如下: 第一章绪论,简单介绍了用户界面的概念和发展状况,详细阐述了界面管理的 研究背景和国内外研究现状,以及本文主要做的工作。 第二章理论研究及技术背景,主要介绍界面配置、界面定制、界面控制的概念, 对比三者的特点,并指出各自局限性;介绍i n i 技术、流技术和组件开 发技术,说明流技术在用户界面和d f m 窗体文件之间相互转化时所起到 的关键作用,从理论上证明本系统的可行性。 第三章用户界面配置系统的总体设计,根据系统设计目标,给出本系统的总体 结构设计;介绍系统的工作环境、开发流程和拟解决的技术难点;设计 系统的功能组成模块并详细说明整个系统的工作流程。 第四章用户界面配置系统的实现及应用,具体介绍各功能模块的设计思想和实 现过程;用两个模拟案例对本系统进行功能演示,说明本系统的可行性 和实用性。 第五章本系统在c + + b u i l d e r 下的移植研究,分析本系统在c + + b u i l d e r 环境下 移植的可能性;对前台界面设计控件进行移植,用后台界面编辑器对多 个应用系统界面进行配置试验,得出本系统可以成功向c + + b u i l d e r 下移 植的结论,进一步扩大了本系统的通用性;最后用一m i s 系统进行实例 演示。 第六章总结与展望,总结本文的主要工作和价值;展望以后研究的方向和内容。 第二章理论研究及技术背景用户界面配置系统的研究与实现 第二章理论研究及技术背景 传统的界面管理方式只是简化了界面的生成与修改过程,对用户界面的可扩展性 并没有带来实质性的好处。现有的一些界面管理系统虽然可以使软件的最终用户通过 工具对界面进行修改和定制,但都有一定的局限性。本章首先介绍了现有界面管理系 统实现界面修改时所采用的三种方法,比较了它们之间的优缺点。然后介绍了i n i 技 术、流技术和组件技术。 2 1 用户界面管理 2 1 1 界面配置 2 1 1 1 概念 界面配置( u ic o n f i g u r a t i o n ) 是指在软件运行之前,通过工具软件对初始运行界 面进行配置。通过界面配置可以对软件的功能进行裁剪、重组、扩充,以实现一些特 殊的需求,如限制、削减试用版功能等,这是对用户界面的静态定义嗍 如图2 1 所示是一种界面配置的基本思路:采用某种方法在程序运行之前对主程 序的界面配置文件进行修改,从而主界面程序在运行时会读取修改后界面配置文件, 从而达到预期的界面效果。 i主程序r 生成叫界面配置卜_ 读出修改1 修改 l l 界面 1 读出创建l 文件 | _ 保存 i 工具 i 图2 - 1 一种界面配置关系图 这种界面配置的方法是在程序运行前对界面配置文件进行修改,用户无法看到界 面的实际情况,因此不具备直观性。还有的界面配置系统往往针对某个具体软件,如 s - 用户界面配置系统的研究与实现第二章理论研究及技术背景 q q 皮肤编辑器,不具备通用性。此外,界面配置文件的形式选择和创建过程也十分 烦琐。 因此,单纯地采用界面配置的方法来实现对界面的修改还有一定的不足,它的非 直观操作往往让用户无所适从。 2 1 1 2 界面配置文件 w i n d o w s 窗体是一个容器型控件,可以在窗体中添加各类控件,包括其他容器型 控件。程序员在设计应用程序用户界面时,通常先静态创建一个窗体,然后在窗体中 添加控件、设置属性、创建事件处理程序等( 叼。 为了实现用户对界面的定制,必须将界面信息持久存储于可执行文件之外。软件 启动时,先读取界面信息,然后根据界面信息生成图形用户界面( g u i ) 。外存存储 界面信息的文件称之为界面配置文件。 目前,有些支持用户界面定制的w i n d o w s 软件( 如m i c r o s o f to f f i c e 系列软件) 将界面信息存储在操作系统的注册表中,其优点是信息隐蔽性强,不易被破坏:缺点 是用户对界面的定制结果只能在一台计算机上保存,当软件重新安装后,界面定制信 息就会丢失,因此当用户在其他计算机上使用该软件或重装软件以后,就需要对界面 重新定制,十分不方便:田边利用面向对象中提供的串行化方法,将实例的状态信息 转化为串行的流,保存到存储介质中,在显示时利用反串行化方法重新生成界面。这 种方法在一定程度上实现了用户界面的定制和最终用户的可修改性,但其使用二进制 数据流作为载体,在通用性和扩展性上存在一些缺点:王云鹏等将界面配置文件用 x m l 来描述,实现了晃面和功能的分离,容易扩展,但其缺点是开发人员需要对所 有允许被定制的界面进行x m l 形式的描述,无形中大大增加了开发人员的工作量。 d e l p h i 窗体文件的扩展名为d f m ,是窗体或数据模块的文件,并且与单元文件 相关联。窗体文件为脚本化的文本文件,可用任意一个文本编辑器查看和修改设置, 其中定义了些资源,使得窗体和数据模块能够存储对象的可视化外观【1 8 1 。在程序设 计期,d e l p h i 将用户窗口及窗口中组件的属性都存放在d f m 文件中,编译后d f m 苎三童墨堡堕塞墨垫查笪墨旦墨耍墼墨至竺竺里塞皇壅墨 文件被固化到可执行文件里。在程序运行期,d e l p h i 程序在打开一个窗1 :3 时,读取窗 口的d f m 文件,根据文件中的数据调用各组件的构造函数创建组件,并设置有关的 属性来实现可视化设计。 d f m 文件以树状结构安排各组件的关系,这使其相互之间层次关系非常清晰。 下面是一个简单小程序的d f m 文件: 用户界面配置系统的研究与实现 第二章理论研究及技术背景 从上面d f m 文件中可以清楚地看出此程序的界面布局:主界面f o r m l 上有一个 l a b e l 、一个p a n e l 和一个b u t t o n ;p a n e l 上有一个o r o u p b o x ;g r o u p b o x 上有一个 c h e c k b o x 。它们相互之间的位置关系一目了然。 实际界面布局如图2 2 所示: 第二章理论研究及技术背景用户界面配置系统的研究与实现 小程序藏示 ,_ _ _ _ _ _ _ - _ _ _ - 。_ _ _ _ - - - _ _ _ _ _ - - h - _ _ - _ _ _ - _ _ _ _ _ _ _ _ - - - _ _ _ _ - _ 。_ _ _ _ _ _ - _ _ _ _ _ _ _ _ _ _ _ - 一 l 矍l 图2 - 2 小程序的界面布局图 d e l p h i 的d f m 窗体文件的脚本文本化、结构特殊性和独立存在性,可以让开发 人员将其直接作为界面配置文件来使用。 2 1 2 界面定制 界面定制( u ic u s t o m i z a t i o n ) 是指在软件运行过程中,用户可以根据自己的使 用习惯,对界面元素( 如菜单、工具栏、键盘命令等) 的属性( 如文字、图标、大小、 位置等) 进行修改,当软件结束运行时。界砸定制的结果将被保存以备下次使用,这 是对用户界面的动态修改过程i “。 界面定制包括了菜单与工具栏的定制、界面风格的定制和个性化智能界面等 如图2 3 所示的一种界面定制的基本思路是:开发几个界面定制控件,在程序运 行状态下利用这几个控件对界面属性进行修改,并将界面状态保存以备下次使用。 修改界面 瞬钢 i 写器控件i l 1 广_ j 修改界面 图2 - 3 一种界面定制关系图 一1 2 陌函丽司 丝竺i 堡宝墨耍墼塞墨竺箜堕塞兰壅墨墨三童堡丝竺基墨丝查笪墨 这种界面定制方法虽然直观且增加了界面修改的灵活性,但它往往只能对系统的 某部分进行定制,并且容易因误操作而导致界面的凌乱。可见,单纯地以界面定制的 方法来实现对界面的修改也存在一定的局限性。 2 1 3 界面控制 界面控制( u ic o n t r 0 1 ) 是指在功能执行的过程中根据系统当前状态对界面元素 进行适当的调整( 例如增加、禁止某些控件) ,使界面布局更加合理,更适应当前的 系统状态i 羽。 界面控制与界面配置和界面定制不同,是由开发人员根据系统状态的需要编程实 现的。一般情况下,都是由用户先发现问题,如想增加一些控件,然后交给开发商来 编程实现,最后经重新编译再提交给用户使用。这样做的弊端就在于:整个过程周期 偏长,用户没有参与权,更不能根据自己的实际需要快速、方便地进行修改。 2 2i n i 技术 i n i 文件在系统配置及应用程序参数保存与设置方面,具有很重要的作用。因此, 可视化的编程一族,如v b 、v c 、v f p 、d e l p h i 等都提供了读写i n i 文件的方法,其 中d e l p h i 中操作i n i 文件最为简洁,这是因为d e l p h i 提供了一个t i n i f i l e 类,使我们 可以非常灵活地处理i n i 文件1 1 9 1 。下面我们重点介绍一下d e l p h i - f x 寸i n i 文件的定义 和操作: 1 i n i 文件的结构 ;注释 【小节名】 关键字= 值 i n i 文件允许有多个小节,每个小节又允许有多个关键字,“= ”后面是该关键字 的值。值的类型有三种:字符串、整型数值和布尔值。其中字符串存储在i n i 文件中 第二章理论研究及技术背景用户界面配置系统的研究与实现 时没有引号,布尔真值用1 表示,布尔假值用0 表示。注释以分号“;”开头。 2 定义 d c l p h i 下i n i 文件的定义分为两步: 1 ) 在i n t c r f a c c 的u s e s 节增加i n i f i l e s 。 2 ) 在v a r 变量定义部分增加一行:m y i n i f i l e :t i n i f i l e 。 然后,就可以对变量m y i n i f i l e 进行创建、打开、读取、写入等操作了。 3 打开i n i 文件 m y i n i f i l e := t i n i f i l e c r e a t e ( p r o g r a m i n i ) ; 上面这行语句将会为变量m y i n i f i l e 与具体的文件p r o g r a m i n i 建立联系,然后, 就可以通过变量m y i n i l i l c 来读写p r o g r a m i l l i 文件中的关键字的值了。 值得注意的是。如果括号中的文件名没有指明路径的话,那么这个p r o g r a m i n i 文件会存储在w i n d o w s 目录中,把p r o g r a m i n i 文件存储在应用程序当前目录中的方 法是;为其指定完整的路径及文件名。下亟的两条语句可以完成这个功能: f i l e n a m e := e x t r a c t f i l e p a t h ( p a r a m s t r ( o ) ) + p r o g r a m i n i ; m y i n i f i l e := t m i f i l e c r e a t e ( f i l e n a m e ) ; 4 读取关键字的值 针对i n i 文件支持的字符串、整型数值、布尔值三种数据类型。t i n i f i l e 类提供了 三种不同的对象方法来读取跏文件中关键字的值( 假设已定义变量v s 、v l 、v b 分别 为s t r i n g 、i n t e g e r 、b o o l e a n 类型) : 1 ) v s := m y i n i f i l e r e a d s t r i n g ( 小节名,关键字,缺省值) ; 2 ) v i := r n y i n i f i l e r c a d i n t e g e r ( 小节名,关键字,缺省值) ; 3 ) v b := m y i n i f i l e r e a d b o o l ( 小节名,9 ;键字,缺省值) ; 其中缺省值为该i n i 文件不存在该关键字时返回的缺省值。 5 写入i n i 文件 t l n i f i l e 类也提供了三种不同的对象方法,向i n i 文件写入字符串、整型数及布 尔类型的关键字: 1 ) m y i n i f i l e w r i t e s t r i n g ( 小节名,关键字,变量或字符串值) ; 旦墨耍竺兰墨竺竺翌壅兰壅墨苎三皇堡丝翌壅墨垫查堕墨 2 ) m y i n i f i l e w r i t e i n t e g e r ( ,j 、节名,关键字,变量或整型数值) ; 3 ) m y i n i f i l e w r i t e b o o l ( ,j 、节名,关键字,变量或t r u e 或f a l s e ) ; 当这个i n i 文件不存在时,上面的语句还会自动创建该i n i 文件。 6 删除关键字 除了可用写入方法增加一个关键字,t i n i f i l e 类还提供了一个删除关键字的对象 方法:m y i n i f i l e d e l e t e k e y ( 小节名,关键字) ; 7 小节操作 增加一个小节可用写入的方法来完成,删除一个小节可用下面的对象方法: m y i n i f i l e e r a s e s e c t i o n ( 小节名) 。 另外,t i n i f i l e 类还提供了三种对象方法来对小节进行操作: 1 ) m y i n i f i l e r e a d s e c t i o n ( ,j 、节名,t s t r i n g s 变量) ;可将指定小节中的所有关键字名 读取至一个字符串列表变量中; 2 ) m y i n i f i l e r e a d s e c t i o n ( t s t r i n g s 变量) 可将i n i 文件中所有小节名读取至一个字 符串列表中去; , 3 ) m y i n i f i l e r e a d s e c t i o n v a l u e s ( 小节名, t s t r i n g s 变量) ;可将i n i 文件中指定小节 的所有行( 包括关键字、= 、值) 读取至一个字符串列表变量中去。 8 释放 在适当的位置用下面的语句释放m y i n i f i l e : m y i n i f i l e d e s t r o y ; 2 3 流技术 2 3 1v c l ( v i s u a lc o m p o n e n t l i b r a r y ,可视化组件库) v c l ( v i s u a lc o m p o n e n tl i b r a r y ) ,可视化组件库。d e l p h i 与其他编程工具相比, 最大优势是为用户提供了大量组件。通过这些组件,d e l o h i 程序员可以方便、快捷地 创建满足要求的应用程序。 v c l 成功地封装了基本w i n d o w s a p i ,并且提供了强大的可视化开发能力。它不 第二章理论研究及技术背景 用户界面配置系统的研究与实现 但具有v b x 和a c t i v e x 的基本优点,还具有代码精简、执行效率高和可编译成执行 文件的特点。 d e l p h i 中的对象,是在对v c l 类库中基类的扩展、继承的基础上封装而成的。 v c l 类的主要继承关系如图2 - 4 所示: t o b j e c t t g r a p h i c c o n t r o l t w i n c o n t r o l 厂j l t 粼黧洲 胁咖雠“加1 厂- t f o r m t a c t i v e f o r m 图2 - 4v c i 类图的主要分支 d e l p h i 为v c l 提供了可视化的工作机制,其中主要使用7 流技术和r t i i 技术, 下面主要对流技术进行简单介绍: 2 3 2 流 流对象与流化存储技术不仅是d d p h i 可视化设计实现的核心,它也为面向对象 编程的数据存储提供了更为方便、简单和通用的方法。尽管流化存储所涉及的存储媒 介十分广泛,但在各对象的接口上得到了统一,使程序的存储操作交得十分方便、简 单,从而使程序员能站在更高层面上进行数据存取的有关编程工作而无需考虑存储介 质的具体差异。下面首先介绍流的基类t s t r e a m 及其属性、方法,然后介绍t s t r e a m 主要派生类,最后介绍t s t r e a m 与组件属性的存取之间的关系。 1 6 用户界面配置系统的研究与实现第二章理论研究及技术背景 2 3 2 1t s t r e a m 类 t s t r e a m 是一个抽象基类,是所有s t r e a m 类的基类,它继承自t o b j e c t 。 1 t s t r e a m 属性 1 ) p o s i t i o n :此属性控制流中存取指针的位置 2 ) s i z e:此属性以字节返回流中数据大小 2 t s t r e a m 方法 1 ) c o p y f r o m :f u n c t i o nc o p y f r o m ( s o u r c e :t s t r e a m ;c o u n t :l o n g i n t ) :l o n g i n t ; 从s o u r c e 所指定的流中拷贝c o u n t 个字节到当前流中。利用此方法, 可以实现不同存储介质之间数据的c o p y 。 r e a d 方法:f u n c t i o nr e a d ( v a rb u f f e r ;c o u n t :l o n g i n 0 :l o n g i n t ;v i r t u a l ;a b s t r a c t ; 从当前流中的当前位置起将c o u n t 个字节的内容复制到b u f f e r 中,并把 当前指针向后移动c o u n t 个字节数,函数返回值是实际读的字节数。如果返 回值小于c o u n t ,这意味着读操作在读满所需字节数前,指针已经到达了流 的尾部。 3 1s e e k 方法:f u n c t i o ns e e k ( o f f s e t :l o n g i n t ;o r i g i n :w o r d ) :l o n g i n t ;v i r t u a i ;a b s t r a c t ; s e e k 方法将流的当前指针移动o f f s e t 个字节,字节移动的起点由o r i g i n 指定。如果o f f s e t 是负数,s e e k 方法将从所描述的起点往流的头部移动。 下表是函数s e e k 的参数的取值: 表2 - 1 函数s e e k 的参数取值 常量值s e e k 的起点o f f s e t 的取值 s o f r o m b e g i n m g 0 流的开头正数 s o f r o m c u r r e n tl流的当前位置 正数或负数 s o f r o m e n d 2 流的结尾负数 4 ) w r i t e 方法:f u n c t i o nw r i t e ( c o n s tb u f f e r ;c o u n t :t o n # n o :l o n i n t ;v i r t u a l ; a b s t r a c t ; w r i t e 方法将b u f f e r 中的c o u n t 个字节写入流中,并将当前位置指针向流 - 1 7 第二章理论研究及技术背景用户界面配置系统的研究与实现 的尾部移动c o u n t 个字节,函数返回写入的字节数。 2 3 2 2t s t r e a m 派生类 t s t r e a m 类是抽象类,随着存储介质的不同,它又派生出一些子类,这些子类主 要用于对文本、内存、数据库的b l o b 字段、数据压缩等进行操作。t s t r e a m 的派生类 不仅能将数据以流的形式存储到具体的媒介中,还能将v c l 组件的属性存储到流中, 如s p e e d b u t t o n 的g l y p h ,它就是将按钮图标以流方式存储到窗1 :3d f m 文件中。 t s t r e a m 的常见派生类: 1 2 3 t f i l e s t r e a m : 文件流类,将磁盘文件的存取以流的方式进行。 t m e m o r y s t r e a m :内存流类,以内存为存储介质进行数据的流化存取。 t s t r i n g s t r e a m : 字符串流,以字符串为存储介质进行数据的流化存取。 2 3 2 3t s t r e a m 和组件属性的存取 t s t r e a m 类在d e l p h i 的可视化设计中扮演了一个十分重要的角色。为了能将窗1 2 及 其组件的属性存到数据流中,且能从数据流中读出有关的属性,t s t r e a m 对象为此提 供了四个方法【冽: r e a d c o m p o n e n t 、w r i t e c o m p o n e n t 、r e a d c o m p o n e n t r e s 和w r i t e c o m p o n e n t r e s r
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 森林电影院课件观看
- 森林灭火战术课件
- 森林火灾警示课件
- 桥隧试验检测课件
- 2025年人力资源咨询公司面试模拟题及答案详解
- 2025电工技师考试题库及答案
- 2025年行业协会秘书长竞聘面试模拟题及答案解析
- 2025年金融机构财务岗位应聘面试技巧与预测题
- 桥梁养护知识培训总结课件
- 2026届陕西省四校化学高二第一学期期末达标检测模拟试题含答案
- 新建茶厂策划方案
- 高速公路收费员培训课件
- 暴发性心肌炎的护理查房
- 项目总监职业生涯规划书
- GB/T 43278-2023医学实验室风险管理在医学实验室的应用
- 大格子作文纸模板
- 《小窗幽记》(全文及译文)
- 房屋建筑构造课件(上)
- 【语文单元主题教学】六年级上册第三单元《单元整体教学以及教材解读》课件部编版创新
- 地质勘探安全系统规程(AQ2004-2005)
- 疑难病例讨论PPT模板
评论
0/150
提交评论