一章数据的输入输出.ppt
,第4章 数据的输入和输出,4.1数据的输入4.2 数据的输出4.3 MsgBox函数4.4 字形与颜色控制,4.1.1 InputBox函数 InputBox$(Prompt,Tiltle,Default,Xpos,Ypos,Helpfile,Context)1)Prompt:字符串,长度不超过1024个字符,用来提示用户输入。文本 可自动换行。如想强制插入回车换行则用:Chr$(13)+Chr$(10)2)Title:字符串,是对话框的标题,显示在对话框顶部的标题区 3)Default:字符串,用来显示输入缓冲区的默认信息 4)Xpos,Ypos:是两个整数值,确定对话框在屏幕上的位置;如果省略,则对话框显示在屏幕中心线向下约1/3处 5)Helpfile,Context:Helpfile是字符串表示帮助文件的名字;Context是数值变量或表达式,表示相关帮助主题的帮助目录号,4.1 数据的输入,例如:Private sub Form_Click()c1$=chr$(13)+chr$(10)str1$=“请输入一串字符:str2$=“输入后按回车键,或单击确定按钮 msg$=str1$+c1$+str2$ss$=InputBox$(msg$,“输入函数InputBox示例”,“hello)Print ss$End Sub,1)Default表示输入的初始默认值,如果直接按下回车键或单击“确定”按钮,函数的返回值(函数值)为该默认值 2)变量名=InputBox(参数表)输入数值时,函数值利用 Val函数转换为数值后,再参加运算。如果变量已被正确地定义了类型时,则不必进行类型转换 3)输入数据后,按回车键或单击“确定”按钮表示确认,并返回在文本框中输入的数据;如果单击“取消”按钮(或按Esc 键)时,则取消当前的输入,此时该函数返回一个空字符串4)需要输入多个值,则必须多次执行或调用InputBox函数,4.1.2 使用InputBox函数时的注意事项,Private Sub Form_Click()Dim a!,b!,c!,s!,t!Start:a=val(InputBox(“输入1边长:”)b=val(InputBox(“输入2边长:”)c=val(InputBox(“输入3边长:”)If a+b c Or b+c a Or a+c b ThenMsgBox(不能构成三角形,请重新输入个边)GoTo startEnd Ift=(a+b+c)/2:s=Sqr(t*(t-a)*(t-b)*(t-c)Print 该三角形的面积:;sEnd Sub,4.2.1 Print方法Print方法的格式如下:对象名称.Print 表达式表,|;1)对象名称是窗体、图片框、打印机或立即窗口,“对象名称”省略时为窗体 2)“表达式”是被输出的内容,可以是数值表达式或字符表达式 例如:Debug.Print“在立即窗口输出数据”Print 5+7,4.2 数据的输出,例:新建工程,当单击窗体时在立即窗口中输出数据 Private Sub Form1_Click()a$=“儒风海韵”b$=“容纳百川”Debug.Print a$Debug.Print b$End Sub,3)多个表达式时,用逗号、分号隔开用逗号分隔,则按标准输出格式显示各数据,以14个字符位置为单位把一个输出行分为若干个区段(输出区),逗号后的表达式在下一个区段输出。用分号分隔,则按紧凑格式输出数据 例如:Private Sub Form1_Click()a=12:b=-3 c$=“求实创新”:d$=海纳百川 Debug.Print c$,d$分区输出 Debug.Print c$;d$紧凑格式输出 Debug.Print a,b 分区输出 Debug.Print a;b+a End sub,Print方法具有计算和输出的双重功能 每执行一次Print方法要自动换行,除非末尾加上一个分号逗号 Print方法后面无任何表达式,表示输出一个空行;如果上一个空Print方法的末尾有逗号或分号时,则该Print语句表示结束上一个Print方法末尾的逗号或分号 例如:Private Sub Form_Click()a$=“5”:b$=“8”Debug.Print“下面输出一个空行”Debug.Print Debug.Print b;a;Debug.Print Debug.Print b,a End Sub,Print没有赋值功能Print x=5;y=6;z=x+y;x+y,格式:Format(Expression,FormatSTR)Expression是要输出的内容,数值、日期或字符串类型的数据FormatSTR是指定输出格式的格式字符串Format()函数一般用于Print方法中,返回值是字符串 1.数值格式化将数值表达式的值按照指定的格式输出,若小数部分的位数多于格式字符串的位数,按四舍五入处理,4.2.2格式化输出函数,数值格式化符号与作用,例:1)print format$(12345,”00000000”):00012345 print format$(12345,”#”):12345 print format$(12345,”000”):12345 2)print format$(123.45,”#.#”):123.45 print format$(3.45,”000.00”):003.45 3)print format$(12345.678,”#,#.#”):12,345.68 4)print format$(12.67,”00.0%”):1267.0%5)print format$(12.67,”$#0.00”):$12.67 6)print format$(-123.45,”-#0.00”):-123.45 print format$(-123.45,”+#0.00”):-+123.45 7)print format$(1234.56,”0.00E+00”):1.23E+03 print format$(1234.56,”0.00E-00”):1.23E03,2日期与时间数据的格式化输出将日期和时间数据按照指定的格式输出,注意:m,mm:跟在h,hh后的时候表示分钟;否则表示月份 非格式说明符“”、“”、“:”等照原样输出 举例:Private Sub Form_Click()Print Format(Now,yyyy-mm-dd dddd)Print Format(Now,ddddd)Print Format(Now,yyyy-mm-dd dddd hh-mm-ss am/pm)Print Format(Now,dd mmmm yyyy)Print Format(Now,h:mm:ss)Print Format(Now,m/d/yy h:mm)End Sub,3字符串格式符,例如:Private Sub Form_Click()Print Format(“HOW ARE YOU”,)Print Format(“how are you”,“)Print Format(“how are you”,”&”)End sub,1.函数格式:Tab(n)输出在参数n指定的位置(列数)处如:Print Tab(20);“输出在第二十列”参数n为数值表达式,表示下一输出位置列号,如果当前的显示位置已超过n,则自动下移到下一行的这个位置输出 当n比行宽大时,实际输出位置为 n Mod行宽,如果 n1,则把输出位置移到第1列 如:Debug.Print 编 号;Tab(20);姓 名;Tab(40);专 业 Debug.Print 001;Tab(20);王 选;Tab(40);计算机科学 Debug.Print 002;Tab(20);李 白;Tab(40);古代汉语,4.2.3 与Print方法有关的标准函数,2Space函数函数格式:Space(n)参数n是一个数值表达式,其取值范围为032767的整数,注意区分函数Tab(n)和Space(n)间的区别:Tab(n)的作用表示使被输出的内容输出到第n列(从对象的左端开始计算)的位置处,而Space(n)表示两个输出项间空n格 注意区分Spc函数和Space函数间的区别 二者用于Print方法时,无区别 Spc()函数不能用于字符串的运算,而Space()函数可以 如:str$=go to&Space(3)&work,4.2.4与Print方法有关的属性和方法 1.ScaleWidth和ScaleHeight属性对象名.ScaleHeight=value对象名.ScaleWidth=value 对象名可以是窗体名、图片框名或打印机对象(Printer),如果省略对象名时,表示当前窗体 只能在程序代码中使用,不能在设计界面时设定其值若省略=Value,则表示返回当前对象的宽度和高度,例如:Private Sub Form_Click()Form1.ScaleWidth=5000 Form1.ScaleHeight=5000 Print Form1.ScaleHeight Print Form1.ScaleWidth Print Form1.Width Print Form1.height End Sub,2.CurrentX和CurrentY属性 对象名.CurrentX=x 对象名.CurrentY=y“对象名”是窗体、图片框或打印机对象(Printer),如果省略对象名,则表示当前窗体 只能在程序代码中使用 坐标是各对象以其自己的左上角为参考点的坐标,Private Sub Form_Click()Print 当前坐标为(;Form1.CurrentX;,;Form1.CurrentY;)CurrentX=1000CurrentY=800Picture1.Print“I love youPicture1.CurrentX=1000Picture1.CurrentY=1000Picture1.Print“HOW ARE YOUPrint 当前坐标为(;Form1.CurrentX;,;Form1.CurrentY;)CurrentX=Width/2CurrentY=Height/2Print 当前坐标为(;Form1.CurrentX;,;Form1.CurrentY;)End Sub,3.TextHeight和TextWidth方法 对象名TextHeight(字符串)对象名TextWidth(字符串)对象名:窗体、图片框或打印机对象TextHeight方法返回一个文本字符串的高度值,而TextWidth方法则返回一个文本字符串的宽度值,其单位均为Twip,4.Height、Width、Top及Left属性 设置对象的大小以及在容器(如窗体)中的位置 窗体.控件.|Printer.|Screen.Height=高度值 窗体.控件.|Printer.|Screen.Width=宽度值 窗体.控件.Left=距左边距离 窗体.控件.Top=距顶边距离,1)对窗体对象来说,Left、top属性是与屏幕的相对位置 对控件对象来说,Left、top 属性是与窗体的相对位置2)屏幕对象 Screen只有 Height和Width两个属性,且是只读的。Screen.Width屏幕的宽度,而Screen.Height屏幕的高度 Private Sub Form_Click()Width=Screen.Width*0.5 Height=Screen.Height*0.5 Left=(Screen.Width-Width)/2 Top=(Screen.Height-Height)/2 End Sub,5.Cls方法 清除窗体或图片框中由Print方法和图形方法生成的文本或图形对象名Cls6.Move方法 对象Move 左边距离,上边距离,宽度,高度“对象”可是窗体及除计数器(Timer)、菜单(Menu)外的控件,例:图形起始点移到窗体的中心,同时图形缩小50%private Sub Form_Load()Picture1.Picture=LoadPicture(“h:1.jpg)End Sub private Sub Picture1_ Click()Picture1.Move Form1.Width/2,form1.Height 2,Picture1.Width/2,Picture1.Height/2 End Sub,4.3.1MsgBox 函数的语法格式为:Variable=MsgBox(Prompt,Buttons,TitleHelpfile,Context)1)Variable:用于接收MsgBox函数的返回值 2)Prompt:字符串,显示在对话框中的提示消息,不可以省略pt 的最大长度大约为1024个字符,Chr(13)&Chr(10)将各行分隔3)Title:字符串变量或常量,其内容将显示在对话框标题栏 4)Helpfile,Context:一个字符串变量或表达式表示帮助文件的名称,Context帮助目录号选项 5)Buttons:对话框样式,最多可以由4项数值相加而得+,4.3 MsgBox函数,4.3.2 MsgBox函数的返回值,Private Sub Form_Click()a1$=“请您再输入一次您的新密码”:b1$=密码更改a2$=continue?“:b2$=operation selectiona3$=“你犯了致命的错误”:b3$=严重警告a4$=“提示您一下”:b4$=您的计算机上有了病毒r1=MsgBox(a1$,16,b1$)暂停r2=MsgBox(a2$,34,b2$)疑问r3=MsgBox(C1$,49,b3$)警告r4=MsgBox(C1$,65,f1$)忽略Print r1,r2,r3,r4End Sub,MsgBox语句格式:MsgBox Prompt,Buttons,TitleHelpfile,Context 该语句没有返回值,常用于简单信息的显示例如:MsgBox“是否退出”,34,“选择”MsgBox 谢谢您继续使用!!,例:设计一工程,运行程序时,单击窗体产生一个MsgBox对话框。根据用户的不同选择,分别作退出或继续操作Private Sub Form_Click()Title$=退出或继续:Msg$=确实要退出程序吗?a=MsgBox(Msgt,vbYesNo+vbDefaultButton1+vbQuestion,Title)If a=6 Then End Else MsgBox 谢谢您继续使用!!End IfEnd Sub,36,4.4.1字形控制1.字体类型窗体名.控件名.|Printer.FontName=“字体类型名”例如:FontName=宋体 FontName=Times New Roman Textl.FontName=“隶书”2.字体大小窗体名.控件名.|Printer.FontSize=点数3.字体修饰属性,4.4 字形与颜色控制,1)粗体属性 FontBold 窗体名.控件名.|Printer.FontBold=布尔值 2)斜体属性 FontItalic 窗体名.控件名.|Printer.FontItalic=布尔值 3)加删除线 FontStrikethru窗体名.控件名.|Printer.FontStrikethru=布尔值4)加下划线FontUnderline窗体名.控件名.|Printer.FontUnderline=布尔值 5)重叠显示属性FontTransparent窗体名.图片框名.FontTransparent=布尔值 设置一种属性后不会自动撤消,直到遇到新的属性设置命令。,4.4.2颜色控制1.使用RGB函数 RGB(Red,Green,Blue)Form1.BackColor=RGB(0,0,255)设定背景为蓝色 2.使用QBColor函数 返回一个Long值,用来表示所对应颜色值的 RGB颜色码 QBColor(Color)Color:015 3.使用系统定义的颜色常数 vbRed、vbGreen、vbBlack、vbYellow、vbBlue 等4.直接使用颜色设置值;HBBGGRR FormlBackColor=HFF0000,例:使用QBColor函数,输出16种不同颜色的文字Private Sub form_Click()FontSize=16 FontBold=True For i=0 To 15 Form1.ForeColor=QBColor(i)Form1.Print“梅花香自苦寒来”Next iEnd Sub,4.5.1利用Printer对象直接输出到打印机1.Printer对象的Print方法 Printer.Print表达式表 2.与Printer对象有关的属性和方法 1)Page属性:Printer.Page Printer.Print 页号:;Printer.Page 2)NewPage方法实现换页操作 Printer.NewPage 3)EndDoc方法结束数据的打印 Printer.EndDoc,4.5 用打印机输出数据,Private Sub Form_Click()FontName=黑体 FontSize=28 Printer.Print 欢迎使用Visual Basic!Printer.Print 正在进行打印输出!Printer.Print 打印测试完毕Printer.Print Printer.Page Printer.NewPage Printer.Print 这是第;Printer.Page;页Printer.EndDoc End Sub,4.5.2 利用窗体的PrintForm方法间接向打印机输出 窗体名.PrintForm用PrintForm方法不仅可打印窗体上的文本,也可以打印出窗体上的任何可见控件及图形信息利用窗体打印输出时,必须将该窗体的“AutoRedraw”属性设置为True(该属性的默认值为False),1、Circle 方法object.Circle Step(x,y),radius,color,start,end,aspectRadius:圆、椭圆或弧的半径Color:圆、椭圆或弧的颜色,多用常量或RGB函数表示Start:弧的起点(-22),默认为0End:弧的终点(-22),默认为2Aspect:圆的纵横比,默认为1.0Step:相对于Currentx和Currenty 的坐标,增加:几种画图形的方法,Private Sub Form_Click()Form1.Circle(500,500),500,vbRedPic1.Circle(500,500),500,vbRedPic1.Circle(1000,1500),500,vbRedPic1.Circle Step(1000,1500),500,vbRedPic1.Circle(2500,1500),1000,vbRed,0.8Pic1.Circle(2000,1500),500,vbBlue,0,3.14/2pic1.Circle step(1000,1500),500,vbBlue,0,3.14/2End Sub,2、Line方法object.Line Step1(x1,y1)Step2-(x2,y2),color,BFStep1:相对于Currentx和Currenty 的坐标Step2:相对于Step1的坐标x1,y1:起点坐标x2,y2:终点坐标B:利用对角线画矩形F:选定以矩形的边框颜色填充,Private Sub Form_Click()Pic1.Line(150,200)-(600,900),vbRedPic1.Line Step(120,300)-(800,900),vbRedPic1.Line Step(120,300)-Step(800,900),vbRedPic1.Line(300,300)-(600,900),vbYellow,BPic1.Line(800,500)-Step(1000,1000),vbYellow,BEnd Sub,例如:用Pset方法画正弦曲线Private Sub Form_Click()Dim xo#,y0#,x#,y#x0=Line1.X1 y0=Line1.Y1 For i=0 To 2*3.14*500 x=i y=Sin(i/500)*600 Pic1.PSet(x0+x,y0+y)Next iEnd Sub,3、object.PSet Step(x,y),color,