博文
VB基础之一 基本概念和函数, 突破,需要的是基础(2005-10-03 09:42:00)
摘要:一.常用术语:工程(Project): 是指用于创建一个应用程序的文件的集合。对象(Object): 可控制的某个东西,VB中主要有两类对象:窗体和控件。窗体(Form): 应用程序的用户界面,即windows。 控件(Control): 指的是各种按钮、标签、文本框等。属性(Property):是指对象的特征,如大小、标题或颜色。事件(Event):对象被激活时所发生的动作,如控件被点击,窗体被加载.卸载等事件的调用形式:Private Sub对象名_事件名方法 (Method):控制对象动作行为的方式,如加载窗体后显示,卸载后从内存中清除方法的调用形式:对象名.方法名代码 '工程窗体中的数据,如窗体中被激活的控件对象所运行的数据过程 '指数据运行的步骤和经过变量 '过程中的未知数的代号常量 '过程中已知数的实际值声明 '指定参与运算的数据的形式形参:声明Sub 和Function过程参数表中变量的类型和形态以及在过程中的角色实参:调用Sub 和Function过程时,传送给相应过程的变量名、数组名、常数或表达式,形参表和实参表中对应的变量名可以不必相同,但位置必须对应起来形参与实参的关系:形参如同公式中的符号,实参就是符号具体的值二.VB程序的设计步骤:====================================1、新建工程,出现默认窗口;2、添加窗体和控件;3、分别设置窗体和控件的属性;4、为对象编写事件过程;5、保存工作(可随时);6、运行和调试工程(多次、反复);7、编译工程,生成可执行文件。
三.常用语句:---------------------------------------------1、简单分支-------------------------------------------- A) if 条件表达式 then 单语句 '如果条件成立就执行单语句 If 条件表达式 then '如果条件不成立就跳到END结束IF语句语句块 '条件成立时执行语句块End if '闪人882、选择分支 ---------A) 简单的选择分支语句: If 条件表达式 then '条件成立执行语句1后跳到END IF结束语句块1 else '条件不成立执行语句2跳到END IF结束语句块2 End if 多重选择分支语句: If 条件1 th......
VB基础之二界面设计常用的属性.方法及事件(2005-10-03 09:40:00)
摘要:先绘制控件,然后按F4设置控件属性.-----------------------------Name属性: 窗体名称是系统识别窗体的标识名,运行时按这个名称调用;常用控件的命名:选3个字母+基本功能=控件名称(以区分对象和可读性)TextBox 文本框 txt ListBox列表框 lstCheckBox 复选框 chkPictureBox图片框 picComboBox 组合框 cboOptionButton选项按钮 optCommandButton 命令按钮 cmdTimer计时器Pointer 指针Label标签 lbl Line 线条 linShape 图形 shpImage图象 imgFrame 框架 fraHscrollBar水平滚动条 hsbVScrollBar 垂直滚动条 vsbDirListBox 文件夹列表框 dirDriveListBox 驱动器列表框drvFileListBox文件列表框 filData 数据控件 datOLE控件窗体(Form) frm菜单(Menu) mnu
一、窗体和控件 常用属性.方法和事件简介:---------------------1.公共属性Name 名称,编写程序代码时使用用Caption 窗体标题是出现在窗体标题栏中的文本内容,提示控件的功能Enabled 活动性 默认值为True,决定窗体能否被访问。Index 返回或设置唯一标识控件数组中某一控件的数。当控件是控件数组的一部分时有效TabStop 返回或设置一个布尔值,指示是否用TAB键来将焦点移动到另一个对象Height,Width 属性设定按键大小.Top,Left 属性精确地设定这两个按钮坐标值。2.公共方法Move 移动 MDIForm、Form 或控件Refresh 强制全部重绘一个窗体或控件Setfocus 设置焦点3.公共事件Click 控件上按下并释放鼠标键时或控件的值改变时发生DblClick 控件上双击鼠标键时发生LostFocus 失去焦点二、窗体和控件的常用方法-------------------------------------------1.-----------Hide方法:隐藏 MDIForm 或 Form 对象,但不能使其卸载 语法:对象名.Hide2.-----------Show方法:显示 MDIForm 或......
vb常用ActiveX控件介绍(2005-10-03 09:38:00)
摘要:----------------常用ActiveX控件-----------------------------Windows通用控件Microsoft Windows Common Controls 6.0路径:Windows\system\MscomctL.ocxTabStrip 页框 Toolbar 工具栏 StatusBar 状态栏ProgressBar 进程条 TreeView 分层显示 ListView 排列显示ImageList 图象列表 Slider 滑块 ImageCombo 图象组合框Microsoft Common Dialog Control 6.0 -- Comdlg32.ocxCommonDialog 通用对话框Microsoft Multimedia Control 6.0 --Mci32.ocxMMControl1 多媒体Microsoft Media Player --Msdxm.ocxMediaPlayer 媒体播放器
1.------------ImageList控件: List Image 对象的集合,用于程序需要调用的图片图象列表用来储藏多个图像,ListView.ToolBar.TabStrip.Header.ImageCombo.TreeView 等控件通过设置Icons,SmallIcons,ImageList属性=ImageList控件 来绑定使用这些图片.也可以在过程代码中,用 Index 属性或 Key 属性的值来引用 ListImage 对象右键点击控件→属性→Image图象→Insert Picture插入图片→双击加入5个图片后确定给5个图片分别取名 关键字=tu1,tu2,tu3,tu4,tu52.------------ ImageCombo控件: 标准 Windows 组合框的允许绘图版本右键组合框控件-属性-通用-图像列表=ImageList1图象组合框的列表部分中的每一项都可以显示一个有自己的图片的项目列表3.------------StatusBar控件:创建工具栏的 Button 对象的集合A)点状态栏右键→Properties属性→Panels窗格Insert Panel插入,Remove Panel删除 '用来增删状态栏中的窗格数目Index索引 '在程序中我们通过窗格的索引值来引用窗......
应用程序的网上升级-VB(2005-10-03 09:32:00)
摘要:应用程序的网上升级-VB 给自己开发的软件增加一个网上升级,既可以让用户随时得到最新版本的软件,又让你的软件显得新潮。那么,这些是怎么实现的呢?本文就以VB为例来说明这一技术的实现原理。 在Windows系统下,一个EXE文件在运行的时候是被系统锁定的,在其运行期间是不能对其修改的(至少用普通的方法办不到),也不能被覆盖。因此,直接从网上下载一个新版本文件覆盖旧版本文件是行不通的,需要另辟蹊径。 既然不能在运行的时候覆盖自身,那就只有先停止在覆盖了,但是覆盖工作由谁来做呢,这很简单,由别的程序来做。举例来说,程序A需要升级到新版的A",但在A运行的时候A"不能覆盖A,这时A必须停止,而由B来从网上下载A",从而覆盖A。将这个过程联起来就是:1)A启动B,2)A停止运行,3)B下载A",4)B启动A",5)B停止运行。这样就运行了A",即新版的A。这里,可以将A看成主程序,而将B看成辅助升级程序。 上面这个步骤只是实现了主程序A的升级,而辅助升级程序B没有能够升级,要实现B的升级,步骤要多一步:1)A下载B",2)A启动B",3)A停止运行,4)B"下载A",5)B"启动A",6)B"停止运行。这样,主程序A和辅助升级程序B就都得到了升级。 至此,网上升级的第一个技术要点就讲完了,下面讲一下从网上下载文件的技术要点。咋一看,好像有些困难,以为要Winsock、WinInet等等知识,但实际上,VB本身提供了大量优秀的控件,使用这些控件使得编程变得简单又可靠。例如,从网上下载文件,我们可以使用MS Internet Transfer Control,即MSINET.OCX。这个控件使得从网上下载文件简单到只要写一两句程序即可实现。 OpenUrl方法:使用这个方法可以下载网上的资源,它有两个参数,一个是URL,这个参数不用多说;另一个是datatype,它指定资源的类型,VB给出了两种类型的资源,字符串型和二进制型,分别对应的参数是icString和icByteArray。注意,这个参数的缺省值是icString,即字符串型,这对我们下载程序是不利的,因此我们要显示的指定它为icByteArray。这种情况下,函数的返回值是一个二进制的数组,将这个数组保存为文件即可实现网上文件的下载。示例如下(来自MSDN) Dim b() As Byte Dim strURL As ......
VB中资源文件的具体使用方法(2005-10-03 09:31:00)
摘要:首先,我们先了解一下windows应用程序中一般经常使用的资源: 位图:位图是用于创建应用程序用户界面的图像。例如,用户可以为工具栏按钮创建一套位图,也可以创建在其它窗口上显示的位图。一般来说,都是在图像编辑器中创建位图,然后再将该位图添加到资源文件中。 图标:图标是类似于位图的小图像,然而,虽然位图可以具有任意大小的尺寸,但是图标却小得多,通常为16*16像素或32*32像素。图标使用的很多方法与位图一样。然而,图标通常被用作代表最小化应用程序的图象、代表应用程序文档类型的图像和其它类型的应用系统。 字符串表:就是指文本串的一个表格,通常来说字符串用来显示菜单命令的提示、对话框中和消息框中显示的信息。要访问串表格中的文本串,需引用串的ID,它与定义表格的源文件中的串相联系。 光标:光标是代表鼠标在屏幕上的位置的图像。尽管windows 系统定义和许多类型的光标,但用户也可以创建自己需要的光标。 定制资源:定制资源是用户想存储在其应用程序资源文件中的任何类型的数据。这些数据可以是文本文件或二进制文件,用户可以用任何喜欢的方式定制资源。资源文件只是作为存储区域。创建了定制资源,可以避免必须从磁盘文件中加载数据,因为数据随资源文件一起加载。 对话框:对话框的资源定义包括样式标志(控制对话框外观及行为的值)以及对话框中含控件的大小和位置。 菜单栏:用户应用程序的菜单栏也可以在资源文件中定义。可以在资源文件中指定命令和命令的ID,以用命令在菜单中的位置。 加速器:加速器也称为热键。它们是用户快速选取命令时所按下的键,使用热键时,不必在应用程序的菜单中寻找命令。加速器在一个表格中定义,这个表将按键与命令资源的ID联系起来。 那么在VB开发环境中如何使用这些资源呢? 1、添加资源文件编辑器, 启动VB6.0的IDE集成环境,新建一个工种。点选菜单“Add -Ins”下的“Add -in Manager”,在弹出的对话框的列表框中选择“VB Resource (RES) Editor”,单击“OK“后退出对话框。这样在“Tools”菜单栏中就有一项“Resource Editor”了。打开这个工具就可以进行资源文件的编辑了。 2、编辑资源文件 在资源编辑器中编辑资源文件非常简单。它可是编辑我们在上面先提到的位图、图标、光标、字......
经过在vb精英里的潜水,终于把winsock高定了。(2005-10-03 09:30:00)
摘要:先介绍一下winsock吧!1.TCP (Transfer Control Protocol:传输控制协议)基础 数据控制传输协议允许创建和维护与远程计算机的连接。连接两台计算机就可彼此进行数据传输。如果创建客户应用程序,就必须知道服务器计算机名或者 IP 地址(RemoteHost 属性),还要知道进行“侦听”的端口(RemotePort 属性),然后调用 Connect 方法。 如果创建服务器应用程序,就应设置一个收听端口(LocalPort 属性)并调用 Listen 方法。当客户计算机需要连接时就会发生 ConnectionRequest 事件。为了完成连接,可调用 ConnectionRequest 事件内的 Accept 方法。 建立连接后,任何一方计算机都可以收发数据。为了发送数据,可调用 SendData 方法。当接收数据时会发生 DataArrival 事件。调用 DataArrival 事件内的 GetData 方法就可获取数据。属性方法LocalHostName | 本地机器名LocalIP | 本地机器IP地址LocalPort | 本地机器通信程序的端口(0<端口<65536)RemoteHost | 远程机器名RemotePort | 远程机器的通信程序端口state | 连接的当前状态Protocal | 使用TCP或UDP协议ListenListen方法用于服务器程序,等待客户访问。格式:Winsock对象.listenConnectConnect方法用于向远程主机发出连接请求格式:Winsock对象.connect [远程主机IP,远程端口]AcceptAccept方法用于接受一个连接请求格式:Winsock对象.accept Request IDSenddata此方法用于发送数据格式:Winsock对象.senddata 数据Getdata用来取得接收到的数据格式:Winsock对象.getdata 变量 [,数据类型 [,最大长度]]Close关闭当前连接格式:Winsock对象.close 事件Close | 远程机器关闭连接时触发Connect | 连接建立好,可以进行通信时触发(客户端)ConnectRequest | 有请求连接到达时产生(服务器端)DataArrival | 有数据到达时触发Error......
[教学]在VB应用程序中调用Excel2000(2005-10-03 09:29:00)
摘要:一、Excel对象模型 为了在VB应用程序中调用Excel,必须要了解Excel对象模型。Excel对象模型描述了Excel的理论结构,所提供的对象很多,其中最重要的对象,即涉及VB调用Excel最可能用到的对象有: 二、调用Excel 在VB应用程序中调用Excel,实质是将Excel作为一个外部对象来引用,由Excel对象模型提供能从VB应用程序内部来程序化操纵的对象以及相关的属性、方法和事件。 1、在VB工程中添加对Excel类型库的引用 为了能从VB应用程序中访问Excel丰富的内部资源,使Excel应用程序运行得更快,需要在VB工程中添加对Excel类型库的引用。具体步骤如下: a)从VB5“工程”菜单中选择“引用”; b) 在“引用”对话框中选择Excel类型库:"Microsoft Excel9.0 Object Library"; c)单击左边小方框,使之出现“√”符号; d)按“确定”退出。 注:要想在VB应用程序中调用Excel,你的计算机系统中必须安装Excel。 2、引用Application对象 Application对象是Excel对象模型的顶层,表示整个Excel应用程序。在VB应用程序中调用Excel,就是使用Application对象的属性、方法和事件。为此,首先要声明对象变量:Dim VBExcel As Object 或直接声明为Excel对象:Dim VBExcel As Excel.Application 在声明对象变量之后,可用CreateObject函数或GetObject函数给变量赋值新的或已存在的Application对象引用。 a)用CreateObject函数生成新的对象引用:Set VBExcel=CreateObject ("Excel.Application") 字符串“Excel.Application”是提供Excel应用程序的编程ID,这个变量引用Excel应用程序本身。 b)用GetO场ect函数打开已存在的对象引用:Set AppExcel=GetObject("SAMP.XLS") 上面语句打开文件SAMP.XLS。 3、Application对象常用的属性、方法属性、方法 方法 Visible属性 取True或False,表明Excel应用程序是否......
导出数据到Excel(2005-10-03 09:29:00)
摘要:Option ExplicitPrivate Const m_Msg = "此功能需要Microsoft Excel 支持,请先安装 Office !"Private Const M_DEUBG = False'---------------------------------------------------------------------'导出列表到Excel'普通的模板,'作者:甲甲虫'Accept: rsobject , the recordset what need export' rstitlle , the report's title' replaceZero , replace the zeroCell in the report'----------------------------------------------------------------------Public Sub ExportToExcel(strTitle As String, rsObject As Recordset, Optional ByVal ReplaceZero As Boolean = False)'表中字段的个数,记录个数Dim lFieldsCount As Long, lRecordCount As LongDim strHead() As String '记录的字段名称Dim xlsApp As ObjectDim xlsBook As ObjectDim xlsSheet As ObjectDim i As Integer'报表标题,表格字段名,表格内容的地址,表头和表格的合地址,记录所在列的地址Dim strTitleAddress As StringDim strHeadAddress As StringDim strBorderAddress As StringDim strHeadAndBorderAddress As StringDim strTitleAndHeadAddress As StringDim strCol As String '列的标志On Error GoTo ErrLab:Screen.MousePointer = 11'创建一个Excel进程Set xlsApp = CreateObject("Excel.......
MsFlexGrid使用总结(2005-10-03 09:28:00)
摘要:最近看到我们群里和论坛里关于MsFlexGrid的讨论很多,搜集了一点这方面的资料供大家参考.大家可以继续添加begin:VB中MsFlexGrid控件的使用细则(收集) >> 将文本赋值给MsFlexGrid的单元格 MsFlexGrid.TextMatrix(3,1)=”Hello” >> 在MsFlexGrid控件单元格中插入背景图形 Set MsFlexGrid.CellPicture=LoadPicture(“C:\temp\1.bmp”) >>选中某个单元 MsFlexGrid.Row=1 MsFlexGrid.Col=1 >>用粗体格式化当前选中单元 MsFlexGrid.CellFontBold=True >> 添加新的一行 使用AddItem方法,用Tab字符分开不同单元格的内容 dim row as string row=”AAA”&vbtab&”bbb” MsFlexFrid1.addItem row >>怎样来实现MSFlexGrid控件单数行背景为白色,双数的行背景为蓝色? Dim i As Integer With MSFlexGrid1 .AllowBigSelection = True ’ 设置网格样式 .FillStyle = flexFillRepeat For i = 0 To .Rows - 1 .Row = i: .Col = .FixedCols .ColSel = .Cols() - .FixedCols - 1 If i Mod 2 = 0 Then .CellBackColor = &HC0C0C0 ’ 浅灰 Else .CellBackColor = vbBlue ’ 兰色 End If Next i End With >> MSFlexGrid控件如何移到最后一行 MSFlexGrid1.TopRow = MSFlexGrid1.Rows – 1 >>如何判断msflexgrid有无滚动条 Declare Function GetScrollRange Lib "user32" (ByVal hWnd As Long, ByVal nBar As Long, lpMinPos As Long, ......
用VB制作注册软件的方法(2005-10-03 09:26:00)
摘要:我自己制作的一个注册软件,希望能给大家带来帮助Private Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As LongPrivate Declare Function GetVolumeInformation Lib "kernel32" Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Long, lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Long) As Long'此模块的作用是检测用程序所在机器C盘序列号并存入一个加密后的文本文件yibao.ini中,'在每次运行时检测C盘序列号并与加密文本文件中的相应值进行比较如果不符提示用户进行注册Public Reg_C As StringPublic Reg_Key As LongPublic Jia_Mi_File As StringPublic Jia_Mi_Char As StringPublic Fso As New FileSystemObjectPublic Ctf As TextStreamPublic Function Jia_Mi_Txt()Reg_C = Abs(GetSerialNumber("c:\"))If Dir(App.Path & "\yibao.ini") = "" Then'建立一个文本文件Open App.Path & "\yibao.ini" For Output As #1Print #1, "00000000"Close #1End IfJia_Mi_File = App.Path & "\yibao.ini"Set Fso = CreateObject("Scrip......
