为了正常的体验网站,请在浏览器设置里面开启Javascript功能!
首页 > VB6当中自定义过程和函数及参数类型doc

VB6当中自定义过程和函数及参数类型doc

2022-05-10 3页 doc 38KB 0阅读

用户头像 个人认证

is_899319

从事直销行业多年,熟练掌握保健品,护肤品知识

举报
VB6当中自定义过程和函数及参数类型docPAGE/NUMPAGESVB6中间自定义过程和函数以及的参数种类近期,接看到有关在VB6屮自定程和函数屮的参数的型,于是生一种冲,想写一篇比全面的有关文章。文章的名就叫《VB6当小白定程和函数的参数型》好了。一.自定程和函数:什么要捉供用八自己定拥有特别功能的程和函数呢?我来看一个例子;在写一个详细的用目的候,可能需要在多个地方出打印一行60个符号“*”,即:************************************************************以此作分开。出打印的代如F:Dimi...
VB6当中自定义过程和函数及参数类型doc
PAGE/NUMPAGESVB6中间自定义过程和函数以及的参数种类近期,接看到有关在VB6屮自定程和函数屮的参数的型,于是生一种冲,想写一篇比全面的有关文章。文章的名就叫《VB6当小白定程和函数的参数型》好了。一.自定程和函数:什么要捉供用八自己定拥有特别功能的程和函数呢?我来看一个例子;在写一个详细的用目的候,可能需要在多个地方出打印一行60个符号“*”,即:************************************************************以此作分开。出打印的代如F:DimiAsIntegerFori=1To60Print"〃;NextiPrint因为在多地方需要出行符号,因此在多个地方会出完整同样的代,了减少代重复,我就能够白己写一个程,程就是能达成出一行“*”号的工作;程的代以下:写自定程:PrivateSubPLine()DimiAsIntegerFori=1To60Print“*〃;NextiPrintEndSub从上边的代中能够领会,程的格式由;PrivateSubPlinef)始,EndSub束。开始部分由四部分成;Private--定程的使用范,似定量前的引字,定程能够川:Private.Public.Friend三种关字,分表示在:窗体、模和模屮使用。Sub?⋯表示程,相Function表示函数。PLine—是自定程的名称。()一—??括号,括号里列出需要的参数,本例无参数。即便无参数,括号也不可以省。用自定程:用格式:格式Call程名(参数列表)格式2:程名参数列表上例的用句:CallPline()或许Pline于是,有了个自定程,在代中凡是需要出行符号的地方,就能够略地用一行句來达成。能够理解,在程序屮使川程的地方越多,采川白定的方式就越示出其越性。3.有参数的程;个程的灵巧性不,它不过能出一行60个符号。假如希望符号能依据需要不一样的化,比方的地方出的符号是等号“二”或许减号“■”等等,能依据用者的意向来。就需要有参数,个参数决定了出的符号。改正程以下:PrivateSubPlinel(ByValChAsString)DimiAsIntegerFori=1To60PrintCh;NextiPrintEndSub在个程的括号里,有了一个参数;ByVai-参数的格式,后血來详细解。Ch⋯.参数的名字AsString-⋯参数的数据型,里是字符串。有了参数,那么用就需要以下來:CallPlinel(〃)“=里,是用符号“二”去用程,行用,用句把“二”参数Ch,使得程中的Ch的就是“二”。就获得出60个等号。假如行用:CallPlinel("?〃),就获得出60个减号。候你会想,能不可以再个程加一个参数,来决定它一行多少个字符。既然想法,那就赶忙行吧!改正程以下:PrivateSubPline2(ByValChAsString,ByVainAsInteger)DimiAsIntegerFori=1TonPrintCh;NextiPrintEndSub里多了一个整型型的参数,能够来决定出一行的字符的个数;假如行用:CallPline2("?",80),就获得出80个减号。假如行用:就获得100个星号。CallPline2(“100),*",自然,能够用;DimClAsString,C2AsString,nlAsInteger,n2AsIntegerCl=r:C2="和':nl=80:n2=100CallPline2(Cl,nl)CallPline2(Clzn2)CallPline2(C2zn2)至此我们理解了编写口定义过程的意义、调用方法,也初步领会了编写的格式、方法。面我们來举一个自定义函数的例子;程序设计屮的两数的观点,來白于数学的观点,起码函数会返回一?个值,在这一点上是—?样的。在程序设计中,过程与函数,有同样的地方,也有不一样的地方;经过上而过程的例了,能够领会过程就是经过一系列和关的操作步骤,达到一个目的(输出一行字符)。而函数也是经过系列有关的操作步骤,达到一个目的,可是这个目的是返回一个数据(值)。比如:依据三角形的底边a和高h,求三角形的面积S。VB代码以下;DimaasSingle,hasSingle,SasSinglea=Val(lnputBoxr请输入三角形的底边长〃))h=Val(lnputBox("请输入三角形的高〃))S=a*h/2Prints我们能够把这段代码,编写成一个求三角形面积的函数,具屮底边a与高h是参数,面积S就是返回的函数值。编写自定义函数;自定义函数以下:PrivateFunctionSJXs(ByValaAsString,ByVaihAsSingle)AsSingleSJXs=a*h/2EndSub此中:Private一作用同过程申明中的也能够是:、Friend三种。Private,Private>PublicFunction---表示是函数,具别于Sub。SJXs⋯-函数的名称。ByVaiaAsString,ByVaihAsSingle)—-一对括号里包括2个参数,同过程格式。AsSingle--这个表示函数的返回值的数据种类。调用自定义函数;调用格式:函数名(参数列表)比如:调用上述求三角形面积的函数:DimaasSingle,hasSingle,SasSinglea=Val(lnputBox(“请输入三角形的底边长〃))h=Val(lnputBox(“请输入三角形的高〃))S=SJXs(a,h)PrintS到此,我们已经认识了高级语言系统供给自定义过程和函数(也称为函数过程)的意义;和口定义过程和函数的代码格式,以及调用格式。往常我们习惯把过程和函数统称为子程序,把调用它们的部分称为主程序。下而我们为了方便,出现“了程序”的地方就是指针对“过程”和“函数”这个概念。二.子程序的一般格式:程的一般格式:[Private|Public|Friend][Static]Sub程名[(参数列表)]句2[ExitSub][句2]EndSub函数的一般格式:[Public|Private|Friend][Static]Function函数名[(参数列表)][As数据型]句1[函数名二表达式][ExitFunction][句2][函数名二表达式]EndFunction三.子程序中的参数及型:形参加参;形参--形式参数,在定句中的参数。参.⋯参数(在参数),在用句中出的参数比如:我前面的例了屮:PrivateSubPline2(ByValChAsString,ByVainAsInteger)???EndSub和PrivateFunctionSJXs(ByValaAsString,ByVaihAsSingle)AsSingleSJXs=a*h/2EndSub此中:Ch、n、a、h,都叫做形参;而;CallPlinel("?",80)CallPlinel(//*,;100)CallPline2(Cl,nl)CallPline2(Cl,n2)CallPline2(C2,n2)S=SJXs(a,h)此中:“?、”80、"*"、100、Cl、C2、nixn2、a、h,都叫做参。参数的型子程序中的(参数列表)的一般格式:参数名[()][As数据型]匸默][Optional][ByVai|ByRef][ParamArray]格式小的关字ByVai在前面的例子小,己出,在我來分介关字:[Optional][ByVai|ByRef][ParamArray]的含与作用:1)ByVai?⋯参数以方式行用;当牛用子程序的候,主程序将参数的数(数据)依据一一的位證,子程序的形式参数。因为是“”方式,因此参数能够是表达式;比如:求三角形面的例子;Dimxassingle,yassingle,zassingle,Sassinglex=4Y=2S=SJXs(x+y?-y)'里x+y的形式参数a,x-y的形式参数hPrintsByRef?⋯参数以址方式行用;当生用了程序的候,主程序将参数的地点(不是数据)依据一一的地点,子程序的形式参数。因为是“址”方式,因此参数往常用屋;(假如用表达式,那么将失掉址的意,其作用与ByVai申明一,行操作)①当申明自定子程序的候,参数前能够关字就默是ByRef型的;ByVai或ByRef,假如省略前面的关字,②用ByRef或ByVai申明的子程序,用参数与形式参数的地点一一,且个数相等、数据型一一一致例:交两个量的;PrivateSubSwap(ByRefxasInteger,ByRefyasInteger)DimtAsIntegert=x:x=y:y=tEndSub个程,采纳了2个址方式的参数,当行以下用:DimaAsInteger;bAsIntegera=3:b=2Print"交前:a=a;",b=";bCallSwap(a,b)Print"交后:a=u;a;"zb=";b与址的区:上边介了用ByVai申明的形式参数,在用生,是依据数的方式行的;而用ByRef申明的形式参数,在用生,是依据地点的方式行的;它的根木区,用平常的來:前者是把参数的形式参数,而后,入子程序中形式参数的运算操作,不会改参数的;尔后者是把参数的地点形式参数,然示,入了程序屮形式参数的运算操作,其就是参数的运算操作,因此会改参数的.例:例1:PrivateSubCommandl_Click()DimXAsIntegerX=1CallMySubl(X)PrintX'因为依据传值方式调用,因此只管在自定义过程里,对对应的形式参数a进行了加5操作,可是X其实不会变化,输出1方定义过程EndSubPrivateSubMySubl(ByvalaAsInteger),这里用Byval申明参数,因此调用将依据传值方式进行a=a+5EndSub例2:PrivateSubCommand2_Click()DimXAsIntegerX=1CallMySub2(X)PrintX'因为依据传址方式调用,自定义过程里对对应的形式参数a进行了加5操作,其实就是对实质参数X的操作,因此X变化输岀6方定义过程EndSubPrivateSubMySub2(ByRefaAsInteger)哒里用ByRef申明参数,因此调用将依据传址方式进行a=a+5EndSub用大白话来理解并记忆:Byval定义的是传值方式,实参加形参不过在调用发生行进行数值传达,传达结束,进入子过程后,它们就没有联系,调用的结果不会改变实参;ByRef定义的是传址方式,实参加形参在调用发生行进行地点传达,传达结束,进入子过程后,对形参的操作其实就是对实参的操作,调用的结果对形参的改变就是对实参的改变;于是,有人就会想到,利用这个ByRef的特色,不是用过程也能够实现函数的功能了吗?即在过程里把一个或多个结果传达到调用它的地方;(聪慧的你,我就不举这个例子了吧?)Case”三角形”MyS=xl*x2/2Case“梯形”MyS=(xl+x2)*x3/2CaseElseMyS=OMsgBox”错误的图形名称!求图形面积:“EndSelectEndFunction2).调用的代码举例:PrivateSubCommand2_Click()DimxlAsSingle,x2AsSingle,x3AsSinglexl=lPrint”圆面积:S=";MyS(”圆”,xl)xl=2:x2=4:x3=10Print“矩形面积:n(”矩形”,xl,x2)S=;MySPrint”平行四边形面积:S=";MyS(”平行四边形“,xl,x2)三角形面积:H三角形xl,x2)Print”S=;MyS(”Print”梯形面积:S=";MyS(”梯形”,xl,x2,x3)EndSub一iiikForalS面!6一一301400S4积?SS?。一二履行该调用,显示的成效为:-|nlxiCommandl数,求最大值为例;.求一组数据中的最大值的自定义函数PrivateFunctionMyMax(ParamArrayd())AsSingleDimiAsIntegerMyMax=d(0)Fori=1ToUBound(d)Ifd(i)>MyMaxThenMyMax=d(i)NextiEndFunction.调用该自定义函数PrivateSubCommandl_Click()DimxAsSingle,yAsSingle,zAsSingleDimMMaxAsSinglex=100.999:y=93.123:z=200MMax=MyMax(x,y)PrintMMaxPrintMMax=MyMax(x,y,z)PrintMMaxEndSub从用代中能够看到,第1次用用了2个参数,第2次用用了3个参数。自然,能够根据详细需要,使用随意多个参数。.子程序(程和函数)中的参数分及使用方法:在定句中的参数叫形式参数,在用句中的参数叫参数。在定句中能够有以下几种关字申明参数;ByVai量?⋯以方式用ByRef量?⋯以址方式用Optional量?⋯相当于OptionalByRef量;可参数,以址方式用OptionalByVaI量?⋯可参数,以方式用OptionalByRef量?⋯可参数,以址方式用ParamArray量()?⋯可参数而且可个数,以址方式用隔,以上6种申明量的方式能够同出在定子程序的句的参数列表中,参数假如同出,那么序次定:先[ByVai|ByRef],次0ptional,最后ParamArray;Z用逗号分KParamArray只能出一次。由0ptional申明的三种参数,能够指出默,当用如果出用,就使用用,否使用默。3.用句中参数与定句中形式参数的;个数同样;地点与数据空,必一一同样。比如:自定求面函数以下;PrivateFunctionMyf(ByValRAsSingle,OptionalPiAsSingle=3.141592654)AsSingleMyf=Pi*R*REndFunction用句以下:PrivateSubCommandl_Click()DimrAsSingle,PiAsSingler=2PrintMyf(r)'用省略了第2PrintMyf(r,Pi)'用出了第EndSub个可的参数,因此函数用默2个可的参数,因此函数用用2013年2月19日以上例了,所有VB6境通.若不妥Z,敬指正盼!4)Optional参数可;假我想写一个函数,川一个函数來求出初等数学里的一些基本形的面;比方:、矩形/平行四形、三角形、梯形四形的面,我如:S=p*R*R,需要1个参数R矩形/平行四边形:S=a*b'需要2个参数三如形;S=a*b/2,需要2个参数梯形:S=(a*b)*h/2'需要3个参数我们假想该函数用1个Byval定义的字符形式参数,用来寄存“圆”或“矩形”或“/平行四边形”或“三角形”或“梯形”,此外用1个Byval和2个Optional定义的单精度形式参数,以下;(1).求基本图形面积的自定义函数PrivateFunctionMyS(ByValXingAsString,OptionalxlAsSingle,Optionalx2AsSingle,Optionalx3AsSingle)AsSingleSelectCaseXingCase4******11圆”MyS=3.141592654*xl*xlCase”矩形“「平行四边形”MyS=xl*x2说明:由Optional重点字申明的参数,只好集中岀此刻参数列表的最后地点。Optional重点字能够出此刻Byval或ByRef前面,一同使用,来说明该参数是可选项,可是依据传值或传址方式进行调用的。5).ParamArray该参数为Variant数据种类的注意:该重点字能够供给随意数量的参数,它不可以与Optional种类的可变规模数组ByVai,ByRef,或Optional—起使用。(就是不可以象Optional那样出此刻ByVai,ByRef以前),而且它是规定以传址方式调用的。只管它的形式参数是可变规模数组,可是调用时不可以用数组名作为实质参数。比方:程序中常常会求一组数据里的最大值、最小值等。可是在不一样的状况下,一组数据的个数是不一样的,冇时候要求求10个数据中的最大值,冇时候要求100个数据中的授大值。这里就能够用ParamArray重点字进行申明,來解决这一个问题,卜面以编写自定义函
/
本文档为【VB6当中自定义过程和函数及参数类型doc】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索