博文

 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语句
语句块 '条件成立时执行语句块......

阅读全文(5567) | 评论:0

 VB基础之二界面设计常用的属性.方法及事件(2005-10-03 09:40:00)

摘要:先绘制控件,然后按F4设置控件属性.-----------------------------

Name属性: 窗体名称是系统识别窗体的标识名,运行时按这个名称调用;
常用控件的命名:选3个字母+基本功能=控件名称(以区分对象和可读性)

TextBox 文本框 txt
ListBox列表框 lst
CheckBox 复选框 chk
PictureBox图片框 pic
ComboBox 组合框 cbo
OptionButton选项按钮 opt
CommandButton 命令按钮 cmd
Timer计时器
Pointer 指针
Label标签 lbl
Line 线条 lin
Shape 图形 shp
Image图象 img
Frame 框架 fra
HscrollBar水平滚动条 hsb
VScrollBar 垂直滚动条 vsb
DirListBox 文件夹列表框 dir
DriveListBox 驱动器列表框drv
FileListBox文件列表框 fil
Data 数据控件 dat
OLE控件
窗体(Form) frm
菜单(Menu) mnu 一、窗体和控件 常用属性.方法和事件简介:---------------------

1.公共属性
Name 名称,编写程序代码时使用用
Caption 窗体标题是出现在窗体标题栏中的文本内容,提示控件的功能
Enabled 活动性 默认值为True,决定窗体能否被访问。
Index 返回或设置唯一标识控件数组中某一控件的数。当控件是控件数组的一部分时有效
TabStop 返回或设置一个布尔值,指示是否用TAB键来将焦点移动到另一个对象
Height,Width 属性设定按键大小.
Top,Left 属性精确地设定这两个按钮坐标值。

2.公共方法
Move 移动 MDIForm、Form 或控件
Refresh 强制全部重绘一个窗体或控件
Setfocus 设置焦点

3.公共事件
Click 控件上按下并释放鼠标键时或控件的值改变时发生
D......

阅读全文(6248) | 评论:0

vb常用ActiveX控件介绍(2005-10-03 09:38:00)

摘要:----------------常用ActiveX控件-----------------------------


Windows通用控件Microsoft Windows Common Controls 6.0
路径:Windows\system\MscomctL.ocx
TabStrip 页框 Toolbar 工具栏 StatusBar 状态栏
ProgressBar 进程条 TreeView 分层显示 ListView 排列显示
ImageList 图象列表 Slider 滑块 ImageCombo 图象组合框

Microsoft Common Dialog Control 6.0 -- Comdlg32.ocx
CommonDialog 通用对话框

Microsoft Multimedia Control 6.0 --Mci32.ocx
MMControl1 多媒体

Microsoft Media Player --Msdxm.ocx
MediaPlayer 媒体播放器 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,tu5

2.------------
ImageCombo控件: 标准 Windows 组合框的允许绘图版本
右键组合框控件-属性-通用-图像列表=ImageList1
图象组合框的列表部分中的每一项都可以显示一个有自己的图片的项目列表


3.------------......

阅读全文(6211) | 评论:0

应用程序的网上升级-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。这种情况下,函数的返回值是一个二进制的数组,将这个数组保存为文件即可实现网上文件的下载......

阅读全文(5042) | 评论:0

 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”菜单栏中就有一项“Resour......

阅读全文(3569) | 评论:0

 经过在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协议
Listen
Listen方法用于服务器程序,等待客户访问。
格式:Winsock对象.listen
Connect
Connect方法用于向远程主机发出连接请求
格式:Winsock对象.connect [远程主机IP,远程端口]
Accept
Accept方法用于接受一个连接请求
格式:Winsock对象.accept Request ID
Senddata
此方法用于发送数据
格式:Winsock对象.senddata 数据
Getdata
用来取得接收到的数据
格式:Winsock对象.getdata 变量 [,数据类型 [,最大长度]]
Close
关闭当前连接
格式:Win......

阅读全文(4344) | 评论:0

 [教学]在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,这个变......

阅读全文(3767) | 评论:0

 导出数据到Excel(2005-10-03 09:29:00)

摘要:Option Explicit

Private 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 Long
Dim strHead() As String '记录的字段名称
Dim xlsApp As Object
Dim xlsBook As Object
Dim xlsSheet As Object
Dim i As Integer

'报表标题,表格字段名,表格内容的地址,表头和表格的合地址,记录所在列的地址
Dim strTitleAddress As String
Dim strHeadAddress As String
Dim strBorderAddress As String
Dim strHeadAndBorderAddress As String
Dim strTitleAndHeadAddress As String......

阅读全文(4009) | 评论:0

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控件如何移到最后一行

阅读全文(16382) | 评论:5

用VB制作注册软件的方法(2005-10-03 09:26:00)

摘要:我自己制作的一个注册软件,希望能给大家带来帮助
Private Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long
Private 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 String
Public Reg_Key As Long
Public Jia_Mi_File As String
Public Jia_Mi_Char As String
Public Fso As New FileSystemObject
Public Ctf As TextStream



Public Function Jia_Mi_Txt()
Reg_C = Abs(GetSerialNumber("c:\"))
If Dir(App.Path & "\yibao.ini") = "" Then
'建立一个文本文件
Open App.Path & "\yibao.ini" For Output As #1
Print #1, "00000000"
......

阅读全文(4414) | 评论:0