PFC中同步调整大小服务(Resize Service)的应用Stamped_第1页
PFC中同步调整大小服务(Resize Service)的应用Stamped_第2页
PFC中同步调整大小服务(Resize Service)的应用Stamped_第3页
PFC中同步调整大小服务(Resize Service)的应用Stamped_第4页
PFC中同步调整大小服务(Resize Service)的应用Stamped_第5页
已阅读5页,还剩8页未读, 继续免费阅读

下载本文档

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

文档简介

本文格式为Word版,下载可任意编辑——PFC中同步调整大小服务(ResizeService)的应用Stamped

不亦心共享的电源论文系列均来至于网络,不亦心所做的仅仅是收集并与更多的网友共享,仅此而已。。。

维普资讯http://.77

48

福建电脑

2002年第10期

粼

中同调整炎努R小溅河南信恩工程学校门雅范驻马店建筑设计院李冬彪400500400850

鸵)的应问

同步调整大小在高级程亭开发中应用较为普遍当窗口大小变化时,步调整窗口内各控同件的大小或位置,以充分利用窗口及使窗口内容显得协调。本文介绍如何利用Pr。Bzz功能进行了扩展。,基类库一(orieonainCasLirrr,现窗口的同步调整大小服务( ̄szevc)能,对其PweBulrFudtolsba5)实dIeieSrie功并

PweBzd,基类库,口,关orzlei一,窗同步调整大小服务1引言

提供服务的对象为同步调整大小服务对象,FPC把此服务功能封装在nCtez(f1Crei)中。nctei(fn——sepc2S—se类.riS一rz—s—rsepc.z—ctrsz)类的祖先是1bspclbs1它们在Is.ei.e2ae(f_一ae,一1 ̄FEWNSRVPBL(FCwNSPRV.BL)文件中。P库

在窗口系统编程中,常需要让应用程序的窗口大小适应系常统桌面大小,充分利用桌面及提供更多的灵活性;窗口大小以当发生变化时,口内的控件大小或位置也需做相应的变化,充窗分利用窗口及使窗口内容显得协调。当某一应用程序窗口的缺省大小是80*60,窗口在6000该4*40设置的桌面中显示时,显示不了窗口的全部,果缩小8就如

B被服务的对象)被服务的对象为窗V基类(—hewci、—he等)它Iwset、hlwsetd,们的祖先是w—se(f.matr,们在PMAIPmatrpcw—se)它FEN.BL(CMAIPB库文件中。PFN.L)C)同步调整大小服务相关对象在pc1Ctrszf一1S—ei.e类中,H关对象是1Ctrsza

ti它l当丰1S—citr-eb,艟{

窗口,口内的有些控件就可能看不见,果能同比例缩小,可窗如就看见窗口的全部内容;该窗口在12而04*78设置的桌面中显示6时,未充分利用桌面,果放大窗口,窗口内的控件不变化,却如而这时窗口内的控件并未充分利用窗口,们的位置也显得不它调,果能同比例放大或移动它们的位置,可充分利用窗口及如就使窗口内容显得协调。PweBie类库(C)供了大量服务功能,步调整orulr基dPF提同大小服务(szevc)以用于窗1、b页面、bae页面,ReieSri可e2TaITapg本文以窗口为例介绍其用法。用同步调整大小服务可以同步调整窗口内的控件,窗口大小变化时,以同步调整窗口内的控当可

于一个结构,构元索是登记要同步改变大小控件的参数项。结在pcnCtrszf——S—eie类中,.s.eiatinctrsztrb声明为保护型结构e数组实例变量Prtceoetd:

ncteiatbivrgsrdj——setin—iee[srzret

ivrgsrd[]为结构数组,型nC—eiatl,存n—ieeet类—Srztb它tser放每一个被登记要同步改变大小控件的参数,括控件名及同步包改变此控件方式等参数。23工作原理.

件大小或位置。同步调整大小有大量方式:以同比例放大与缩可小;可不变大小,移动他们的位置;可以有其它灵活的调整也只还方式。2原理21.基本原理

A)承并创立窗口继在PweBuleorir中,Pd从FC的窗口基类(set、ci、w—hew.hlw—dset)承的窗口都可实现同步调整大小服务功能。在这我he等继们从PFC类库中继承任意窗V基类(、he)建自己的窗口I俐vsct创w—yhe。m,ets

在PC中,某一服务功能封装在对象中,与被服务_象F把并ilf分开。同步调整大小服务属窗1

}2i,窗1对象为被服务的时I艮务即2I

象,步调整大小服务对象为提供服务的对象同在实现同步调整大小服务时,做的工作不是在同步调整大要小服务对象(供服务的对象),是在窗1对象(服务的对提中而2I被象)。我们在窗口中,明服务变量、建建服务对象、放服中声创释

B)明同步调整大小服务实例变声

PC已在wmyhe的祖先pcwmatr声明r同步调整F—setf—s中,e大小服务的公用实例变量:puiblc:1ctrsz3s—eie.一iclenvrsz

务对象;在窗I的事件中引用同步调整大小服务对象的事件与及2I函数,窗口发生变化时,务对象做相应的处理,调整控件的使服去大小。在窗1中要做的大部分工作已在窗口的祖先中已做好.2I只要创立窗口时继承PF的窗口类即可。C使用窗I服务功能一般步骤是:先继承PZl首FC的窗I类.Zl创立窗口,次在窗口中创立该窗口服务对象,后在窗口中引用其然

在这坠的ivrszn—eie并没有实例化,要在其它地方用Cet需rae创处它。同步调整大小服务的实现都是通过0_日时象ivrscJn-ci的函数及事件来实现。C)动同步调整大小服务启启动同步调整大小服务,即创立同步调整大小服务对象。也

服务对象的函数与事件,现该服务对象的服务功能。实22提供服务的对象与被服务的对象.A)供服务的对象提

在wmyhe的pcpepn事件中启动同步调整大小服务,本—setf—roe脚如下:’

ti.fcRcie(hso—tSrTRUE)/此函数已在窗口类的祖先DcSz/f—

不亦心共享的电源论文系列均来至于网络,不亦心所做的仅仅是收集并与更多的网友共享,仅此而已。。。

维普资讯http://.77

2002年第1O期w—lscqiatr中定辽

福建电脑A)记要同步调整大小的控件登

49

在这个函数的rurc参数下,了一些判断外,除函数中主要程序如下:1V—esze11rl—ereaet1e1s

tr.i—esze

调用o—gsefReitr函数,记要同步调整的控件及调整方式。登控件大小埘整有大量方式:同比例改变大小;任意指定比例可可改变大小;同比例移动;任意比例移动;可有其它方式。可可还ofrgse的用法有两种,种语法是:—eirt一isacnmefReie(cnr1moentnea.ogsrtoto.vx,moevy.sa.cle

ivrsefStiSz(hsn—eio—eOrizgetiWokpcWitrSaedh()ti,hs

WokpcHh()rSaeet)Jg由上可知,动同步调整大小服务对象就是用Crae创立同启et步调整大小服务对象.用o.eOrgie函数保存当前窗口大并ftiSzS

witclhih它可使登记的控件(oto)指定的百分比dh,saeegt)cnr1按

例移动(oe,vy和按指定的百分比例放大或缩小(cl—mvxmoe)saewitsaeegt。dh,clhih)

小,以此来初始化同步调整大小服务对象。并启动服务后,可以引用此对象的函数,现其功能。例如:就实调用ivrsc.fReitr函数,记要同步调整的控件及调整n— ̄Jo—gsez登方式。

例如:w.set窗V的pcpepn事件中调用o-e在myheIf—roefS—tgseReitr函数,登记控件:

tiivci.feie(wl,,100)/hsn—seo.gsrd+,000,10/当窗I.rzRt=I变大或变小时,据窗口控件dl左上角不动(vx=0.vy数w—moemoe=

D)步调整大小服务机理同

W—set窗口要处理与同步调整大小服务对象有关的事myhe件。当调整当前窗V大小时,发窗V的改变大小事件(eiI触Irsz.e

0,高各放大或缩小10(cldh=10sah-)宽0%setawi0,eleteg

100)ti.vrifgs

rd.,,00,0/窗口hsi.zo—ie(w105,105)/当neeRets变大或变小时,据窗口控件d1左边不动(vx)宽放大数w.moe:0,或缩小(clit10,件向下或向上移动5%(vysawdh=0)控e0moe=5)高放大或缩小5%(clh-50,0saeegt0)

ee)这个事件同时触发同步调整大小服务对象(vrse中的vn,i—ez)ni

pcei事件,即窗口变化时,步调整大小对象也做相应的frsez也同处理,调整控件的大小。这些同步的脚本已在wmyhe祖先去setpcw—sefmatr中rszeie事件中定义。pcw—sef—matr的rie事件中声明的脚本如下:sezIIVai(n.eieadfsldivrsz)nThswidwsaemiii.nottn—mie!Thnzde

ti.vrseo.eie(wl0,1000/hsi.eifgtrd-,100,,)/当窗InzRs=I变大或变小时,数据窗I控件d1位置向右下或向左上移动=Iw.

(vx0,vy=10,控件的大小不变(clitmoe=10moe0)而sawdh=0e,saeegtclhih:0)OfReie—gsr的另一种用法是:tisacnmeogsentnea.fReitr(cnrloto,mehd)to

ivrsz.EvnpcRei(seyeFi.Wokpcn—eieetf.szeitp,hszrSae

Wit(,hsWokpcHeh()dh)TirSaeit)gEnfdI

E终止同步调整大小服务)终止同步调整大小服务,即用dsry释放创立的服务对也eto

它可使登记的控件(ot1,指定的方法(to)动及cnr)按omehd移调整大小。

象,放内存资源。在w.set先pcwmatr中的cs释myhe祖fs.ele事o

例如,w-se

t窗口的pcpepn事件中调用o.e在myhef.roefS.

件中,止同步调整大小服务,终已定义脚本如下:tio.ezr(ae/函数已在窗口类的祖先pcwhsftefs)/.SRil此f..matr中定义se

teieRgtsr函数.记控件:登tiivrseoRgse(b1Sa’/h..i.Leire.,‘cl)/当窗口变大或snezte变小时,键c.按b1按比例放大或缩小

在这个函数的flase参数下,了一些判断外,函数主要程除此序如下:Detoyi—eiesrnvrsz

tiivri.feie(b2‘ieTRit)/当窗口hsnzogtrc.,Fxdog’/.seeRsh变大或变小时,键c按b2只向右或向左移动,小不改变,同大等于tiivri.fReitrc-,00,0hsn.ezo-gse(b210,0,)se

由上可知,止同步调整大小服务就是用Deto终sry释放创立的同步调整大小服务对象。

tiivrseoeie(b3‘cloit)/当窗口h.ni.fgsrc.,SaTRg’sezRteh/变大或变小时.键c按b3上边不动,度也不变,边也不动.高左只

3同步调整大小服务的使用同步调整大小服务使用比较简单,以上原理可知,部分从大工作已在窗口类的祖先pcw—sef.matr中做好。3.创立窗口并启动服务1A)承并创立窗口继

放大或缩小宽度,同于tiivri.feie(b300等hsn.zo.gtrc.,,,.seeRs10,)00B)置不再调整大小的最小窗口设当窗I缩小到一定程度时,再要求登记的控件调整大小=I不时,用ivriefStnie函数设置这个最小窗口的大小。需n—ez.o-eMiSzs例,w-set窗口的pcpepn事件中设置最小窗口大在myhef—roe小:

首先,P

C类库中继承任意基窗口类(w—et创立自从F例se)h己的窗口w—setmyhe。

B启动同步调整大小服务)其次,wmyhe窗口的pcpepn事件中调用o—eR—在—setf—reofteSszie函数,动同步调整大小服务:启

ivri.femii(h.it,hshih)/设置最小n—ezo—tnztiwdhti.egtsesses/窗口大小为窗口的初始大小C)销登记的控件注

tio—eRse(R)/函数已在窗口类的祖先pchfteirTUE/sSz此f—w—sematr中定义

当控件不再需要随窗口大小改变而改变时,ivri.f用n-zo.seeUngseReitr函数来注销此控件。例如,c—在bl的cikd事件中,用o.Reitr注销登lec调fUngse,记的控件:

启动服务后,可以引用此对象的函数,现其功能。就实3.同步调整大小服务的功能2

不亦心共享的电源论文系列均来至于网络,不亦心所做的仅仅是收集并与更多的网友共享,仅此而已。。。

维普资讯http://.7750福建电脑/检验参数/Isla—efINuliwwit)osla—eegt(ndhrINulinwhih)Thn(ertr一1eun

2002年第1O期

prn.n—eieo—neitrc一aetivrsz.furgse(b2)/注销在同步调整大小./中对象登记的控件c一b24同步调整大小服务的扩展在同步调整大小服务中,数o—emise设置“小〞口函fstniz最窗大小,里的最小窗口大小并非指窗口不能再小的窗口大小.这而是窗口小到这个大小后,口内登记要同步调整大小的控件不再窗跟随调整大小。有时我们希望窗口小到某一程度,能再小。例不

EndIf

/设置最小窗口/iiai(w—euso)tefslirqetrhnvdIinefa—wwihipaetiiuwithndtlrnmnmmdhTeirquso.dh=ipaetiiuwitw—ee

trwitlrnmnmm-dh

如我们希望窗口最小值为初始窗口的大小,这我们扩展类n在etrszs.eie的服务,现这一功能。.实

edinfIinwhifa—eeghtipaemimuhitThnlrntnimeghe-irquso.ihtw-eetrhegEndifedinfipaetiiuheglrnmnmmiht

A)先声名请求服务窗口的实例变量首在nctrse中声明:—s—eizprtceoetd:w—atrirqusomsew-eetr

B编制请求服务函数)在netrsz中添加函数o—emiwi—s—ei.efstnn(w—sear.matrw—e

/调用祖先pcnetrz/f——s— ̄ie的功能spr:frsz(iedh,ieegtue:o-eia—wwitanwhih).en—rtreun1

qetr,函数设置请求最小窗口服务的请求窗口。o一tnuso)此{emiswin(w—sew—euso)本如下:matrarqetr脚

D)实现最小窗口功能

iiu(wrq

温馨提示

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

评论

0/150

提交评论