先来解决一个小问题Q怎么新徏一个VB的工E呢Q方法是q样的,在程序启动时出现?#8220;新徏工程”对话框中选择“标准EXE”q点ȝ定,p直接新徏一个工E,如果你蟩q了q个对话框则也可?#8220;文g”菜单中选择“新徏工程”重新调出此对话框?/span>
下面一h看看VB的编E环境,虽然看v来复杂,但可以把它分为几个部分,每个部分都有自己特定的功能,q样我们清楚多了。其实VBq是通过q样一个界面把相近或同cȝ功能l合在一L(fng)Q它使我们在设计E序时能方便的控制程序的Ҏ(gu)面面?/span>
H体的最上层?#8220;VB 6.0的菜?#8221;?#8220;便捷工具按钮”Q菜单中包含了所有的VB提供的功能的选项Q而其中一些常用的功能或操作选项则被提取出来攑֜?#8220;便捷工具按钮”中,? q点击这些快h钮可以加快程序开发的速度Q下图标Z常见的工h钮的作用Q记着使用它们哦?/span>
接着看看“VB的组仉?#8221;?#8220;H体设计区域”QVB提供了方便的H体设计区域Q它位于整个~程H口的中间。我们可以在q个区域中搭建出观实用的程? 界面Q试着?#8220;VB的组仉?#8221;中找?#8220;按钮CommandButton”,点击选中后,再到“H体设计区域”的窗体上点一下,q时Q窗体上?x)出C个按 钮,q样我们把按钮d到我们程序的界面中了。嘻嘻,忘了告诉你哪里是“VB的组仉?#8221;了,是最左边的那一条包含许多看h眼熟的小东西的区域,? 是VB提供l我们的标准的编E组?控g)Q它把程序设计中常常用到的诸如按钮、图片框、列表框{等东西作好了放在那里,我们如果要用只L加到H体? 卛_?
屏幕的右Ҏ(gu)三个从上C排列的小H口Q它们分别是Q?/span>
“VB工程理?#8221;Q用来管理开发一个VBE序所需要的各种cd的窗体和模块Q如左图是一个工E所包含的东西,H体是一个程序表现在外面的界面、模块是E序内部使用的代码?/span>
当我们点?#8220;dH体”便捷工具按钮后,左图?#8220;VB工程理?#8221;中就?x)显C出新添加的H体Q这也就?#8220;VB工程理?#8221;的功能,它我们从M上把握程序开发的各个部分?/span>
“lg属性窗?#8221;Q用来显C组件的属性,q允许我们修改,讑֮q些属性的|我们在窗体设计区域的H体上选中一个组Ӟ以按钮ؓ(f)例,则在“属性窗?#8221;? ?x)列出它的属性,我们可以看到常用?#8220;Name”?#8220;Capition”?#8220;Font”{等属性,试着?#8220;Capition”属性改?#8220;q是一个按?#8221;Q? 然后看看“H体设计区域”的按钮上昄的文字是不是改变了?/span>
“H体布局H口”Q调整程序运行时Q程序窗体在屏幕中的初始位置Q把鼠标Ud左图屏幕中的H体上,q时鼠标?x)变成移动ŞӞ拖动H体Q就讄好了q行时此H体的位|?/span>
好了说了q么多,q差一个区域没Ԍ那就?#8220;代码~辑区域”Q当我们?#8220;H体设计区域”双击鼠标Q就能弹个区域,可以看到一行行的VBE序昄在其 中,我们可以修改Q写入程序代码,来让E序实现一定的功能Q它是整个程序设计的关键Q如果你对VB语言的语法还不是十分了解Q可以l下一节专门对“VB 语法”的讲解,别着急,慢慢来,很快p入门的?/span>
VB语言的语法和QBASIC基本一_(d)可以说如果你能读懂QBASICE序Q那你读VB的程序是没有问题的,q一节中我们只是单的讲一讲VB的语法,因ؓ(f)在今后的各个实例中我们会(x)不断接触到新的语法知识,q也是一个积累的q程?/span>如果你还记得上节中的内容Q我们提到过如果?#8220;H体设计区域”的某个组?控g)上双击鼠标,?x)出?#8220;代码~辑H口”Q也是如下囄H口Q我们可以在 其中输入或是修改E序的代码。在我们双击控g到写入代码的q个q程中,我们涉及(qing)C一个很重要的概念,q是VB与QBASIC的主要差别之一Q大家知道在 QBASIC包括Tubro CQTubroPascal{语a中程序从一开始就需要我们一点点的写代码来实现所有的功能Q比如程序运行的界面Q输入输出,键盘控制{,它们在程序中? Cؓ(f)一个个的过E或者是函数?qing)子E序Q它们都是完全面向过E的~程语言Q但是现在的VB、VC、DELPHI{编E语aQ都提供了可视化的编E环境,备有 一整套常见的组?控g)供我们用,q些控g可以看作是对?VB严格的说不是完全面向对象的编E语a)Q我们写E序时会(x)直接与这些对象打交道Q而不? 原来。所以在VB中大部分的代码是与这些相关的Q例如下图所C的一D代码,它是我们在一个按?Command)上双击鼠标而由VB自动产生的一个子q? E,Private Sub Command1_Click()是子q程的开始,End Sub表示子过E的l束。然后我们可以在子过E中dE序代码Q也是由我们自己来写当按钮被点?yn)LQ程序所做出的响应?/span>
下面我们便来分析一下这D代码?/span>
VB中声明一个变量?#8220;Dim 变量?As 变量cd”的方法,一般在E序中用的到的变量都应该有变量声明Q如上例中的a、b、i分别被定义ؓ(f)整型和字W串型变量,VB中的变量cd有以下几U:(x)
数据cd 说明
Byte 二进制数
Boolean
真假?
Integer 整数
Long 长整?br />
Single 实数
Double 双精度型
Currency 货币
Date 日期和时?
Object 对象
String 字符?
Variant 可变cd
控制l构和@环结构是E序设计中常见的两种l构?/span>
计算机在q行E序的时候,执行语句的顺序是从上向下的? 有些单程序可以只用单向流E来~写Q但E微复杂的程序就要靠控制语句来控制程序执行的程。控制结构主要有两种Q分支结构和循环l构?
分支l构Q分支结构事实上是一U选择Q在不同的条件下选择执行不同的程序段。实现分支结构的语句有很多,最常用的是if……then……else……。例如:(x)
……
if 条g then
{E序D一}
else
{E序D二}
end if
……
如果条g满了,?sh)脑执行程序段一中的语句Q然后蟩q程序段二,执行下面的语句。如果条件不满Q电(sh)脑将跌E序D一U的语句Q执行程序段二,然后l箋执行下面的语句?
循环l构Q@环结构就是让?sh)脑反复的执行某一E序D落q次? 用Do……Loop可以循环重复执行一语句块,且重复次C定?在已知@环次数的条g下,用For……next可以反复执行l一语句块?/span>
以上两种l构你可以参照图中所C的代码Q仔l体?x)一下,今天pq么多了Q下节我们就要进入实例式的控件学?fn)?/span>
文本框控ӞTextBox)是VB中最常用的控件。它是显C和输入文本的容器,相当于一个文字编辑器Q提供了所有基本的文字处理功能Q例如文本的~辑{。在下面q个程序中Q我们能看到文本框控ӞTextBox)的最基本的属性?/span>Z学习(fn)方便Q提供的源码已经作了详细的中文注释,看看源码框中的代码:(x)
Option Explicit
q个例子的两个窗体界面如下:(x) |
||||||||||||||||
|
||||||||||||||||
|
||||||||||||||||
|
||||||||||||||||
下一步我们ؓ(f)FormTxtBoxH体?#8220;定”(CmdOK)?#8220;清除”(CmdClear)按钮的Click事g中添加相应的E序?/span> 其中Q?/span> TextID.Text = "" 是把?x)员~号文本框中的内Ҏ(gu)I,其它语句与此cM?/span> FormBack.TextAll.Text = LblID.Caption & " " & TextID.Text _ & vbNewLine & 该语句设|FormBackH体中TextAll文本框的文本。vbNewLine是换行显C标志?#8220; _”是箋行标志,当语句一行写不下时用此标志Q但?font color="#ff6666">注意Q?/font>前面要加I格? 代码写好之后Q我们就可以保存工程Q然后按“Ctrl+F5”键,试验一下我们的E序了?/span> |
useBodyEncodingForURI="true"
<Connector port="8080"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
debug="0" connectionTimeout="20000"
disableUploadTimeout="true" useBodyEncodingForURI="true"/>
<!-- NOTE: If NOT using hsqldb, delete the next two parameters -->
<!-- Give unused connections 4 secs before eviction. -->
<parameter>
<name>minEvictableIdleTimeMillis</name>
<value>4000</value>
</parameter>
<!-- Check for evictions every 5 secs. -->
<parameter>
<name>timeBetweenEvictionRunsMillis</name>
<value>5000</value>
</parameter>
修改后的jira.xml文g如下Q?br /><!--14. 启动tomcatQ敲入http://.../jiraQ应该就能看到JIRA的配|向g
A sample configuration file for Tomcat 4.1.x and 5.0
Customize the docBase attribute, drop in your $CATALINA_HOME/webapps/ (4.1.x) or
$CATALINA_HOME/conf/Catalina/localhost/ (5.0) directory and restart Tomcat.
Note the JOTM dependencies; you'll need to copy various jars to Tomcat's common/lib/ directory.
See http://www.atlassian.com/software/jira/docs/latest/servers/tomcat41.html for details.
-->
<Context path="/jira" docBase="C:"usr"Apache"Tomcat5"webapps"jira" debug="0">
<Resource name="jdbc/JiraDS" auth="Container" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/JiraDS">
<parameter>
<name>driverClassName</name>
<!-- NOTE: if you change the database type, you will need to change it in WEB-INF/classes/entityengine.xml -->
<value>com.mysql.jdbc.Driver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:mysql://localhost/jiradb?autoReconnect=true&useUnicode=true&characterEncoding=UTF8&mysqlEncoding=utf8</value>
</parameter>
<parameter>
<name>username</name>
<value>jirauser</value>
</parameter>
<parameter>
<name>password</name>
<value>mypassword</value>
</parameter>
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
</ResourceParams>
<Resource name="UserTransaction" auth="Container" type="javax.transaction.UserTransaction"/>
<ResourceParams name="UserTransaction">
<parameter>
<name>factory</name>
<value>org.objectweb.jotm.UserTransactionFactory</value>
</parameter>
<parameter>
<name>jotm.timeout</name>
<value>60</value>
</parameter>
</ResourceParams>
</Context>