vb6.0第五课

15 篇文章 5 订阅
订阅专栏

一、参数
1、 形参:出现在sub过程和function过程中。
2、实参:调用参数时传递值
在这里插入图片描述
二、参数按值和按地址传递
在VB中传递参数有两种方式:按值传递、按地址传递。其中按地址传递,又称为“引用”。
1、按值传递参数
按值传递使用Byval定义参数。使用时,程序为形参在内存中临时分配一个内存单元,并将实参的值传递到这个内存单元中。当过程中改变形参的值时,则只是改变形参内存单元中的值,实参的值不会改变。
如:

Private sub test( byval a as integer, byval b as  integer)
   A=a+20
   B=b+0
   Print “a=& a , “b=& b
End sub

Private sub cmdtest_click()
    Dim num1 as integer ,  num2 as integer
    Num1=10
    Num2=10
    Print “num1=& num1 , “num2=& num2
    Call test(num1,num2)
    Print “num1=& num1 , “num2=& num2
End sub

上述代码中,test过程中修改了形参a 和 b 的值,a和b是按值传递参数的,单击“cmdtest”后,形参a和b的改变没有影响实参num1和num2的取值。

2、按地址传递参数
按地址取值使用byref定义参数。在定义过程中,如果没有byval ,默认的是按地址传递参数。
按地址传递参数,是指把形参变量的内存地址传递给被调用的过程。形参和实参具有相同的地址,即形参和实参共享同一段存储单元。
Private sub test(a as integer, b as integer)
………. 别的都相同
测试结果:形参a和b的改变影响了实参num1 和num2的取值。如下图所有 在这里插入图片描述
按值传递参数、按地址传递参数应用场合,参考以下几条规则:
(1)对于整型、长整型或单精度参数,如果不希望过程修改实参的值,则采用传值方式。而为了提高效率,字符串和数组应采用传地址方式。此外,用户定义的类型和控件只能通过地址传送。
(2)对于其他数据类型,可以采用两种方式传送。但是建议此类参数最好用传值方式传送,这样可以避免错用参数。
(3)用函数过程可以通过过程名返回值,但只能返回一个值;子过程不能过程过程名返回值,但可以通过参数返回值,并可以返回多个值。但需要子过程返回值时,其相应的参数要用传地址方式。

数组参数:在定义过程中,用数组作为形参出现在过程的形参列表。语法如下:
形能数组名() [As 数据类型]
说明:实参列表中的数组不需要使用括号“()”,过程传递数组只能按地址传递,即形参和实参共有同一段内存单元。
如:

Private function average( age() as integer , n as integer )  as integer
  Dim I as integer, aver as integer, sum as integer
  For I =0  to n-1
     Sum=sum+age(i)
  Next i
  Aver=sum/n
  Average=aver
End function

Private sub command1_click()
  Dim employees()  as  integer   ‘定义一个用于存储员工年龄的数组
  Redim employees(6) 
  Employees(0)=20
  Employees(1)=28
  Employees(2)=30
  Employees(3)=24
  Employees(4)=25
  Employees(5)=35
  text1=average(employees,6)
end sub

上述数组employees作为实参传递给形参age,形参age需要改变数组的维界。因此实参employees必须用“dim employees() as integer”语句声明为动态数组。

三、对象参数
除了变量和数组作为实参传递给过程中的形参,VB还允许对象(如窗体、控件等)作为实参传递给过程中的形参。
对象参数可以用引用方式,也可以用传递的方式,即在定义过程中,在对象参数的前面加byval.
如下例为通过子过程objectena设置textbox和commandbutton控件不可用。

Private sub objectena( obj1 as object , obj2 as object)
  obj1.enabled=false
  obj2.enabled=false
end sub

private sub form1_load()
  objectena text1,command1
end sub

四、嵌套过程

sub mysub1()
...
end sub

sub mysub2()
   call mysub1
end sub

private sub form1_load()
call mysub2
end sub

上述代码中,mysub2过程调用mysub1过程,而form1_load事件过程又调用了mysub2过程

VB6.0 实现WebSocket 例子.7z
09-23
总的来说,虽然VB6.0不直接支持WebSocket,但通过使用第三方库或者自行实现WebSocket协议,仍然可以在VB6.0中构建WebSocket应用程序。这个"VB6.0 实现WebSocket的例子"压缩包很可能是包含了一个完整的示例,展示了...
常用SQL语句vb6.0实例源代码
05-19
在IT领域,Visual Basic 6.0(VB6.0)是一种经典的编程环境,用于创建Windows应用程序。SQL(Structured Query Language)则是用于管理和处理数据库的标准语言。本资源"常用SQL语句vb6.0实例源代码"是为初学者设计的...
VB6.0手册
weixin_33877885的博客
04-13 264
1、Form窗体事件 Private Sub Form_Activate()  '焦点在此窗口时触发  MsgBox "窗体的Activate事件"  End Sub    Private Sub Form_Initialize()    MsgBox "窗体的Initialize事件"  End Sub    Private Sub Form_Load()    MsgBox "窗体的Loa...
VB6程序中验证ByREF, ByVal, VarPtr, StrPtr, Poke, Peek, DBCS, SBCS, Ansi, Unicode的区别与使用
最新发布
weixin_45707491的博客
08-27 784
字符串存储格式影响着编程使用,C格式字符串是以 \0 作为结束符,其长度可以由此计算,而VB格式的字符串其长度存于字符串前缀之中。不仅如此,字符串编码方式 ansi, unicode, widestring, dbcs, sbcs 这些概念也影响着长度计算。笔记用VB6程序对它们进行剖析验证。
VB6中ByRef 参数类型不正确的处理方法
Dark Source
02-06 4138
传递参数类型已经定义,但由于定义方法不对,所以提示"ByRef参数类型不符"。具体情况如下:    当VB中如此定义变量时,将会出现以上错误信息的出现。    Private Sub Command1_Click()    Dim i , j As Integer    i = 3    j = 4    Call get1(i, j)    Text1.Text = i    End S
实参与形参
李赛男
06-21 1666
形参:是声明函数时写的,如果是多个形参,那么需要用,隔开。形参的值不是固定的,形参要与实参实际传入的数据一一相对应。 实参:在调用时,实际传入函数中的值,传入后,在函数中使用形参中获取具体的值。 形参顾名思意是形式上的参数 没有具体值 你在写一个方法的时候当然不知道具体值 而实参就是你调用方法时给的参数 给的是和所调用方法所匹配的具体值 实参是函数调用时调用函数传送给被调用函数参数的实际值。实参可以是常量、变量和表达式,实参必须有确定的值。 形参是函数定义时,参数表中的参数。形式参数只能是变量。
vb6中function和sub的区别
hello_w_o_r_l_d的博客
02-02 1054
Function是函数,sub是子程序,都可以传递bai参数,但函数有返回值,子程序没有 function 可以用自身名字返回一个值,sub 需定义别的变量,用传址方式传回值。 Sub 过程与Function 过程的区别: 1. Sub 过程定义时无需定义返回值类型,而Function 过程一般需要用“As 数据类型” 定义函数返回值类型。 2. Sub 过程中没有对过程名赋值的语句,而Function 过程中一定有对函数名赋值的语句。 3. 调用过程:调用 Sub 过程与 Function 过程不同。调用
VB6.0_导出excel_方法源代码_excel_vb6_vb6_VB_
09-30
VB6.0(Visual Basic 6.0)中,导出数据到Excel是一种常见的需求,主要用于数据分析、报表生成和数据交换。这个标题"VB6.0_导出excel_方法源代码_excel_vb6_vb6_VB_"指的是一个使用VB6.0实现的程序,它包含了将...
VB6.0设计条形码打印程序
05-18
VB6.0中可以使用第三方条形码控件,如BarCode ActiveX Control,它支持多种类型的条形码格式,如EAN-13、UPC-A、Code 128等。通过设置控件的属性,如条形码类型、数据值和尺寸,可以生成对应的条形码图像。 三、...
vb 6.0 QRcode条码生成控件
07-06
为了在VB 6.0中生成二维码,我们需要一个第三方的QRcode生成控件。这个控件通常是一个动态链接库(DLL)或ActiveX组件,它可以被VB 6.0应用程序调用,实现二维码的生成和显示。根据描述,提供的压缩包可能包含了这样...
VB 变量做实参举例
06-07
VB 变量做实参举例 VB 变量做实参举例
VB显示可用串口程序
见习馒头
04-17 2692
Private Sub Form_Load() On Error GoTo errline '如果出错,进入错误处理程序 Dim i As Integer '定义可访问的串口总数 Dim Counter As Integer
vb函数参数的传递
vivid的技术专栏
06-16 1万+
实际上,形参的完整的语法格式应该为:[[Optional][ByVal|ByRef]|ParamArray] > [()][As 类型>][=缺省值>]ByVal表示该参数按值传递,简称值参。此时形参与实参各占一个独立的存储空间,形参的存储空间是调用时才分配的。如果选择值参,则实参与过程体内的运算无关,它仍保留原值。因此,为了保护实参不受过程运算的影响,应选用数值参数。ByRef表示该参数按地址传
vb与vc中的形参实参(笔记)
kfhzy的专栏
09-21 4441
猛然间玩了1年多的VB,倒是把C的内容丢了不少,很多基本功都生疏了。最近CSDN上看了个帖子,涉及到形参实参的问题,竟然把我都给搞糊涂了。为了加深对编程语言概念的印象,特利用VB与C中对形参实参调用的不同点,来巩固一下基本功。本文档所述均为我自己的体会,许多内容和说法并非教材定义,故也许与标准的定义有出入,只要不影响理解就行。  VB与C编译方式的不同导致对函数调用时形参实参定义方式有很大不同(其实是完全不同,并且没有可比性)。  在VB中,区别形参和实参的办法很简单,只要看参数定义前边有没有 ByVal
如何将二维数组作为函数的参数传递
奔跑的蜗牛
04-09 2339
概述:   今天写程序的时候要用到二维数组作参数传给一个函数,我发现将二维数组作参数进行 传递还不是想象得那么简单里,但是最后我也解决了遇到的问题,所以这篇文章主要介绍 如何处理二维数组当作参数传递的情况,希望大家不至于再在这上面浪费时间。 正文:   首先,我引用了谭浩强先生编著的《C程序设计》上面的一节原文,它简要介绍了如何 将二维数组作为参数传递,原文如下(略有改变,请原
vba传值调用_小白关于VBA调用Sub传递参数之传值与传址的思考
weixin_39653311的博客
12-22 1094
故事一:从前,森林里有三个小房子,一个红房子,一个黄房子,一个蓝房子。红房子里面放了一个苹果,黄房子里面放了两个苹果,蓝房子里面放了三个苹果。有一天,外面来了三个小精灵,一个叫红精灵,一个叫黄精灵,一个叫蓝精灵。三个小精灵发现了三个小房子,看到里面有苹果,他们饿了,都想吃苹果。于是,他们商量了一下,来抓阄决定谁去哪个房子吃苹果。真不知道他们是怎么抓的!红精灵抓到了红房子,黄精灵也抓到了红房子,而蓝...
VB几种函数参数传递方法,Variant,数组,Optional,ParamArray
热门推荐
whchensir的专栏
07-28 2万+
VB几种函数参数传递方法,Variant,数组,Optional,ParamArray  一) 过程的参数被缺省为具有 Variant 数据类型。   1)ByRef按  地址传递参数在 VB 中是缺省的   按地址传递参数后,过程返回的也是地址,函数中改变了的变量值也将带回来。   2)ByVal 关键字指出参数是按值来传递的   按值传递参数时,传递的只是变量的副本。
vb中函数的调用与参数的传递
许德鹏
12-14 4273
<br /><br />形参如果是数组必须加小括号<br />如:定义过程  sub em( pay() as Single)<br />调用过程    em(xu())<br />按值传递(ByVal):形参和实参占有不同的存储空间,调用过程改变了形参变量的值,实参的值不会受影响。调用结束后,实参还是调用之前的值,<br />Private Sub Command1_Click()<br />Dim x As Integer<br />x = 6<br />Print "调用sub过程前x="; x<br
VB6.0音乐播放器源代码教程
3. 媒体播放功能实现:学习如何使用VB6.0中的Windows多媒体控件或第三方库(例如MCI)来实现音乐文件的播放功能。这包括加载音乐文件、控制播放、暂停、停止等操作。 4. 事件驱动编程:VB6.0是一种基于事件的编程...
写文章

热门文章

  • 补码加、减运算规则 26131
  • 什么是大数据(转自知乎) 10764
  • (转)将python文件打包成exe程序,任何人都可以使用 3864
  • 指令和指令系统 2573
  • 海明码、异或运算 1505

分类专栏

  • python技术 6篇
  • 感言 2篇
  • 其他 1篇
  • vb6.0 15篇
  • 教育教学理论
  • 高中教学理论资料 2篇
  • 软件设计师参考资料 4篇
  • 做人做事 2篇

最新评论

  • 常用python模板

    CSDN-Ada助手: Python入门 技能树或许可以帮到你:https://edu.csdn.net/skill/python?utm_source=AI_act_python

  • 补码加、减运算规则

    做而论道_CS: 溢出,才是补码运算所需要说明的知识点。 但是,溢出的原因、判断是否溢出的方法,这两者的关系,计算机专家,都没有讲清楚。 该讲的,不讲。 不该讲的,乱讲。 思维正常的人,学习计算机的知识时,会觉得难度很大,就是这个道理。

  • 补码加、减运算规则

    做而论道_CS: 正负数,变换成为补码之后,仍然是普通的二进制数。 补码的加法运算,和普通二进制数的加法运算,完全相同。 补码,全部的位,都是数值,根本就没有什么符号位。 所谓的“符号位也参加运算”,就是废话。 补码的位数,是固定的。八位就是八位,16 位就是 16 位。 相加之后,产生的进位(无论是 1 或是 0)都不属于补码。所以,进位(或是模),都不必提起。 就是说,补码它本身,就不包括进位。 所以,也就没有什么 “丢弃不丢弃” 的事。 计算机专家,就是一嘴的废话!

  • 补码加、减运算规则

    做而论道_CS: 补码的来源,与 “取反加一”,毫无关系。 补码的原理,可以用十进制来说明。 假定,只使用两位数:0~99。 此时,-1 就可以用 +99 代替。 如:24-1 = 23   24 + 99 = (一百) 23 忽略进位,只取两位,这两种算法的功能相同。 三角函数中,也有:减 90°与加 270°等价。 限定了位数,数值的变化,就有了周期性。  正数(补码),可以代表负数;  加法,也就可以代替减法。 ----------------- 计算机,有 8 位机、16 位机。。。 每次运算,就只用到 8、16 位二进制数。 即:参加运算的位数,也是限定的。 那么,45-45 = 0,八位机将如下计算:   0010 1101 + xxxx xxxx = 0000 0000。 其中的 xxxx xxxx,就是【-45 的八位补码】。 这个补码,到底是什么? 你自己也能推导出来。 先移项:xxxx xxxx = 0000 0000-0010 1101, 可得出:xxxx xxxx = (借位 1) 1101 0011, 取八位:xxxx xxxx = 1101 0011。 至此,就求出了 [-14]补 = 1101 0011。 求负数的补码,就这么简单。 ----------------- 实际上,任意负数(-X)的补码,都是:0 - X。 你用二进制简单算一下,立刻就能得到结果。 (-128 的 8 位补码,也就是这样求出来的。) 同理,任意正数(+X)的补码,也都是:0 + X。 这还用算? 0 + X,不就是 X 吗? 即,正数的补码,就是 X 本身! ----------------- 在现代计算机中,只配置了加法器。 任何负数,都必须先转换成正数,再做加法。 这个正数,计算机专业就称之为【补码】。 怎么求 -X 对应的正数(补码)? 你用 X-X = 0 就能推出来。 这个公式,太初级了,还需要证明吗? 专家(如盖茨之流)从小就迷上了计算机,学都没正经上。 这些基本的常识,显然都很模糊。 而且,大家都知道:老外的算术能力很差。 用二进制计算:0-X,也许得掰出脚趾头。 没办法,他们只好自己胡编乱造了:  真值机器数符号位原码反码取反加一符号位不变模...。 我们的老师水平也太洼,就知道忽悠学生、抓你挂科。

  • python学习手册(笔记)

    CSDN-Ada助手: 推荐 Python入门 技能树:https://edu.csdn.net/skill/python?utm_source=AI_act_python

最新文章

  • 常用python模板
  • pandas
  • csv文件处理
2024年1篇
2023年7篇
2022年2篇
2019年29篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家河北商场美陈价格玻璃钢花盆用什么胶水粘大同小区玻璃钢雕塑生产厂家青岛仿铜玻璃钢雕塑制作江苏玻璃钢雕塑服务介绍金华小品系列玻璃钢雕塑价格酒瓶玻璃钢雕塑玻璃钢雕塑水花松江区通用玻璃钢雕塑淮北玻璃钢雕塑销售商场美陈是什么生意天津玻璃钢花盆中国玻璃钢雕塑招标网玻璃钢博物馆雕塑施工句容动物玻璃钢雕塑设计玻璃钢花盆组合套装枣庄玻璃钢花盆环保玻璃钢雕塑哪家便宜开原玻璃钢仿铜雕塑景区玻璃钢雕塑厂家哪家好滁州学校玻璃钢雕塑优势商场美陈dp点彩色玻璃钢雕塑教程沧州玻璃钢人物雕塑定制玻璃钢装饰展示雕塑玻璃钢入口雕塑无锡玻璃钢雕塑厂家价格坐式玻璃钢卡通雕塑镇平玻璃钢雕塑设计丰台商场美陈灯饰画策划香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化