1、我们设计该软件的主要目的是:1. 通过该题目的设计,掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;2. 掌握菜单的使用方法;3. 掌握多窗体的调用方法;4. 掌握数据库的应用;5数据库的调用,及对数据的管理。第二章 系统功能需求分析2.1系统概述我设计的软件,模仿了万能收藏窗体布局、其中部分功能与它相似。窗体大致分为:标题栏、菜单栏、工具栏、工作区、状态栏几个部分。系统拥有网址的保存、修改、删除,和浏览网页;联系簿的保存、修改、删除;及备忘等功能。2.2系统的构成我们设计的软件,窗体布局简洁,方便实用。软件主要有气个窗体构成,登陆、主窗口、添加网址、添加联系人,备忘录、
2、数据查找窗体、标准模块。登录窗口主要包括combo、text录入。验证码的使用、数据库的链接等主窗口主要包括viewtree、dgbrid显示数据,快捷键的使用、菜单栏、数据库的链接等添加窗体主要包括combo输入及下拉菜单的使用、数据的显示、数据库的链接等备忘录窗体主要包括栏、文本编辑、文字计数、数据库的链接等。数据查找窗体主要包括combo输入及下拉菜单的使用、dbgrid数据显示数据库的链接等。标准模块主要包括各种函数、全局变量的声明,文件初始化等功能。2.3各模块的功能登录窗体与数据库链接实现单对单(一个账户对应一个密码)登陆模式,实用随机数产生验证码限制登录。主窗体使用viewtre
3、e与dbgrid显示数据库内容,同时是viewtree中节点与dbgrid相连,实现随时变化。菜单栏中添加、修改按钮能实现对其他窗体的调用,同时改变显示窗体的标题栏属性;菜单栏中的删除按钮可以删除对应项在数据库的数据内容,并同时改变dbgrid格内容;菜单栏中的查看网址按钮可打开浏览器浏览相应网页;查找按钮可查找数据库中相应内容。下方的状态栏可以显示操作人的信息,与系统详细时间等内容。添加窗体与数据库相连,单击保存改变数据库中数据,取消关闭相应窗口。修改窗体可读取显存数据库中的内容,并进行修改,取消关闭相应窗口。当改变关系与类型与数据库中无相符内容时,则改变数据树内容。编辑菜单项具有编辑文本文
4、件的最基本、最常见的功能,复制菜单项可以复制已选定的文本,剪切菜单项可以剪切已选定的文本,粘贴菜单项可以可以再光标插入点处插入一已复制或已剪切的文本。全选菜单项可以把当前文本全部选中。同时字体菜单可改变字体属性。在文本框中内容改变时,统计其中字数显示在下方,当字数超出一定限制是给出提示。2.4系统的运行环境系统的运行环境是win7、Vista 、XP等常用系统软件。2.5各模块的功能软件具有储存修改网址、联系簿、备忘录的功能。登录窗口有数据库连接,实现单对单(一个账号对应一个密码)登陆系统。使用随机数产生验证码限制登录情况。主窗口使用viewtree显示数据库中类型表的显示,使用dbgrid显
5、示数据中的详细数据,菜单栏是文件功能的具体体现者,具有对其他窗体的显示的调用功能。新建菜单调用添加网址、添加联系人或添加备忘窗体;修改菜单调用修改网址、修改联系人或修改备忘窗体;点击删除会在数据库中删除相应项;查找联系人会调用查找窗体,查看网址会启动浏览器查看相应网页。当点击添加时,窗体的caption属性为添加,当点击确定时改变数据库内容;取消退出窗体。当点击修改时,窗体的caption属性会变为修改,同时读取数据库文件显示相应数据,当内容数据发生改变时对数据库内容进行修改;点击取消突出窗体。当窗体中的类型或关系框中内容与数据库中内容不符,则同时在类型数据表中进行修改。备忘录菜单中菜单栏编辑
6、菜单项具有编辑文本文件的最基本、最重要、也是最常见的功能,复制菜单项可以复制已选定的文本,剪切菜单项可以剪切已选定的文本,粘贴菜单项可以可以再光标插入点处插入一已复制或已剪切的文本。第三章 系统代码3.1主窗体代码Option ExplicitConst treewide = 2000 TREEVIEW的最小宽度Const biaowide = 2000 DBGRID的最小宽度Private Sub Form_Load()imgPointer.Left = ReadIni(chuangti, imgpointerleft1200) 从ini文件中确定窗体大小Me.Move ReadIni(fo
7、rmleft100), ReadIni(formtopformwidth2400formheightMe关键字像是隐含声明的变量。这个关键字适用于类模块中的每个过程。当类有多个实例时,Me在代码正在执行的地方提供引用具体实例的方法。要把当前执行类实例的有关信息传递到另一个模块的过程,Me非常有用Data1.DatabaseName = dizhi & shuju.mdbSet Datashuju = Workspaces(0).OpenDatabase(dizhi &, False, False)ListTreelianxibiaoEnd SubPrivate Sub Form_Resize(
8、) 当一个对象第一次显示或当一个对象的窗口状态改变时该事件发生On Error Resume Next resume在错误处理程序结束后,恢复原先的运行。如果错误和错误处理程序出现在同一个程序中,则从紧随产生错误的语句的下个语句恢复运行。如果错误发生在被调用的过程中,则对最后一次调用包含错误处理程序的过程的语句(或OnErrorResumeNext语句),从紧随该语句之后的语句处恢复运行If Me.Width treewide + biaowide Then Me.Width = treewide + biaowideIf Me.WindowState 1 Then chicun imgPoi
9、nter.Left windowstate返回或设置一个值,该值用来指定在运行时窗体窗口的可视状态。0为正常,1最小化,2最大化Private Sub chicun(X As Long)X = treewideTreeView1.Width = XimgPointer.Left = X + 40DBGrid1.Left = X + 40DBGrid1.Width = Me.Width - (TreeView1.Width + 100)TreeView1.Top = Toolbar1.HeightDBGrid1.Top = TreeView1.Top + 2imgPointer.Top = Tr
10、eeView1.ToppicMove.Top = TreeView1.TopTreeView1.Height = Me.ScaleHeight - TreeView1.Top - 300 设置 heightDBGrid1.Height = TreeView1.HeightimgPointer.Height = TreeView1.HeightpicMove.Height = TreeView1.HeightStatusBar1.Top = Me.ScaleHeight - TreeView1.Height - TreeView1.Top - 300StatusBar1.Height = 300
11、Public Sub ListTree() 显示树形列表Dim a As NodeDim b As Long添加地址薄类型TreeView1.Nodes.ClearSet a = TreeView1.Nodes.Add(, , l联系人object.Add (relative, relationship, key, text, image, selectedimage)With Datashuju.OpenRecordset(select * from list where book=lianxiren While Not .EOF b = b + 1 Set a = TreeView1.No
12、des.Add(, tvwChild, & b, !Type) TvwChild4(缺省)子节点。该Node节点是relative命名节点的子节点 .MoveNext WendEnd Witha.EnsureVisible添加网址薄类型W网址薄wangzhiType)添加备忘列表b备忘录beiwangWhile Not .EOFWendPublic Sub lianxibiao(Optional strRelation As String)Dim a As Stringa = select 姓名,关系,电话,地址,qq,Email,备注 from lianxirenIf strRelation
13、 Then a = a & where 关系= strRelation & Data1.RecordSource = a ecordSource 设置一个数据控件的底层表、sql语句或querydef Data1.Refresh shujudbg 7, lianxiren Then DBGrid1.Columns(1).Visible = TruePublic Sub wangzhibiao(Optional strType As String)select 名称,网址,类型,备注 from wangzhiIf strType 0 Then With Data1.Recordset If No
14、t .EOF And Not .BOF Then 指针处于中间位置 If Left(!网址, 7) = Open, !网址, , App.Path, 1) Else shellexecute(byval hwand as Long ,byval ipoperation as String ,byval ipfile as String ,byval ipparamelers as String ,byval ipdirectory as String ,byval nshowcmd as Long)shellexecute函数:查找与制定相关程序的文件名hwnd 制定一个窗口的句柄,有时候wi
15、ndows程序有必要在创建自己的主窗口前显示一个消息框ipoperation 制定字符串open来打开ipfile文档,或指定print来打印它ipfile 想用关联程序打印或打开一个程序名或文件名ippatameters 如果ipszfile是可执行文件,则这个字符串包括传递给执行程序的参数ipkirectory 使用的完整路径nshowsmd 定义了如何显示启动程序的常数值 a = ShellExecute(Me.hwnd, 1) End If End WithPrivate Sub bei_Click(Index As Integer) beiwanglu.beicaozuo = 1 b
16、eiwanglu.Show vbModal, Me shanbei beiwanglu.beicaozuo = 2Private Sub shanwang()Dim a As String, b As String a = MsgBox(确定删除 vbCrLf & !网址 & ?, vbQuestion + vbYesNo) If a = vbYes Then Data1.Recordset.Delete Data1.Recordset.MoveNext If Data1.Recordset.EOF Then Data1.Recordset.MoveLast ListTreePrivate S
17、ub shanlian()姓名 &Private Sub shanbei()备忘 &Private Sub Toolbar1_ButtonClick(ByVal Button As ComctlLib.Button)If Button.Index wang_Click (Button.Index - 5)End IfPrivate Sub StatusBar1_PanelClick(ByVal Panel As ComctlLib.Panel)If denglu.Combo1.Text = dou Then StatusBar1.Panels.Item(1).Text = 操作者:窦军强If denglu.Combo1.Text = gao Then StatusBar1.Panels.Item(1).Text = 高树青StatusBar1.Panels.Item(2).Text = Format(Date, yyyy年mm月dd日n = Weekday(Data)If n = 1 Then Statu
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1