⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 h20000324-20.htm

📁 对于学习很有帮助
💻 HTM
字号:
<html><head><script language="JavaScript">	function reset(){   for ( var i=0; i < document.Form1.elements.length; i++ )     { document.Form1.elements[i].options[0].selected=true }}function going(url){        parent.location=url;        reset();}</script><style><!--A:link {text-decoration: none; color: #000000; font-family: 宋体}A:visited {text-decoration: none; color: #000000; font-family: 宋体}A:active {text-decoration: none; font-family: 宋体}A:hover {text-decoration: underline:#ffffff; color: #ff0000}body,table {font-size: 9pt; font-family: 宋体}.H1 {font-size: 9pt ; line-height:9pt; align=center}.ourfont {font-size: 9pt ; line-height:9pt; }.ourfont1 {font-size: 9pt ; line-height:9pt; }--></style><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><title>Delphi中对用户输入数据的控制</title></head><body topmargin="0" leftmargin="0"><div align="center"><center><table border="0" cellPadding="0" cellSpacing="0" width="700"><tbody>  <tr>    <td><p class="content4"><span class="font"><img border="0" height="3" src="../../soft/pix.gif" width="700"></span></td>  </tr></tbody></table></center></div><div align="center"><center><table border="0" cellPadding="0" cellSpacing="0" width="700"><tbody>  <tr>    <td bgColor="#3399ff" width="658"><p class="ourfont"><span class="font">&nbsp; </span><a style="text-decoration: none; color: rgb(255,255,255)" href="../os/H00705-2.htm">操作系统</a><font color="#FFFFFF"><span class="font"><span> |</span></span></font><a style="color: rgb(255,255,255); text-decoration: none" href="../image/H00705-14.htm">图像处理</a><font color="#FFFFFF"><span>|<span class="font"> </span></span></font><a style="color: rgb(255,255,255); text-decoration: none" href="../autoCAD/H00705-19.htm">辅助设计</a><span class="font"><font color="#FFFFFF"><span> | </span></font></span><a style="color: rgb(255,255,255); text-decoration: none" href="../data/H00705-18.htm">数     据 库</a><span class="font"><font color="#FFFFFF"><span> | </span></font></span><a style="color: rgb(255,255,255); text-decoration: none" href="H00706-1.htm">高级编程</a><span class="font"><font color="#FFFFFF"><span> | </span></font></span><a style="color: rgb(255,255,255); text-decoration: none" href="../netuse/H00705-20.htm">网络应用</a><font color="#FFFFFF"><span><span class="font"> | </span></span></font><a style="color: rgb(255,255,255); text-decoration: none" href="../webpage/H00705-21.htm">网页制作</a><font color="#FFFFFF"><span><span class="font"> |</span></span></font> <a style="color: rgb(255,255,255); text-decoration: none" href="../technic/H00706-3.htm">技术交流     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </a><a style="color: rgb(255,255,255); text-decoration: none" href="http://202.100.13.77/clslyb/default.asp?clsid=jiaoc"><font color="#FFFFFF"><strong>过客留言</strong></font></a></td>    <td bgColor="#3399ff" width="32"><p align="center" class="ourfont"><a href="mailto:net@163.sn.cn"><img src="../../soft/email.gif" alt="email.gif (493 字节)" border="0" WIDTH="20" HEIGHT="19"></a></td>  </tr></tbody></table></center></div><div align="center"><center><table border="1" cellSpacing="1" width="700" bordercolor="#3399FF"><tbody>  <tr>    <td align="left" bgColor="#FFFFFF" vAlign="top" width="700" bordercolor="#0000FF" bordercolorlight="#0000FF" bordercolordark="#0000FF"><p class="ourfont"> </p>    <table border="0" width="100%" style="font-size: 9pt">      <tr>        <td width="100%" align="center"><strong>Delphi中对用户输入数据的控制</strong></td>      </tr>      <tr>        <td width="100%" align="center">文/尚望 </td>      </tr>      <tr>        <td width="100%" align="center"></td>      </tr>      <tr>        <td width="100%" align="center"></td>      </tr>    </table>    <p>一个数据库应用程序,常常需要提供数据输入功能,即让用户输入数据,并存入数据库中,这就涉及到一个数据输入是否合法的问题。若用PowerBuilder来编写这种程序,实现这一点是非常方便的,因为PowerBuilder中每一个数据输入控件都可以单独对其输入进行控制,但Delphi没有提供这样的功能。我们用Delphi编写这样的程序时,就需要自己编写一些代码来实现。这并不是Delphi的一个缺点,相反,我们通过对用户输入数据的人为控制,可以编写出相当方便可靠的数据库应用程序。下面举一个很常见的例子加以说明。<br>    <br>    也许大家在编写数据库程序时遇到过这种情况:库中一些字段必须是非空的,比如索引字段,但用户输入时可能会忘记,如果对这种情况不作出提示,仍旧将这条记录存入库中,就会破坏库的完整性,而且在排序、查找等操作中也会出错。于是我们就要对这种情况加以控制。举例如下:<br>    <br>    一、建立一个简单的数据库,设名为People.dbf,别名为man,库结构如表1。表1     字段名 类型 长度 name c 8 age n 3 work c 10<br>    <br>    二、创建一个工程。<br>    <br>    三、在Form1中放入如下控件,并设定其属性如表2。<br>    <br>    四、定义一个布尔类型的数组,作为三个DbEdit框中是否有数据输入的标志。<br>    <br>    implementation<br>    <br>    var<br>    <br>    test:array[1..3]of boolean;<br>    <br>    {$R *.DFM}<br>    <br>    五、编写Dbedit1、DbEdit2、DbEdit3的OnExit事件代码如下:<br>    <br>    procedure TForm1.DBEdit1Exit(Sender:TObject);<br>    <br>    begin<br>    <br>    if DbEdit1.text=′′ then {若要进行更精确的控制,在这里可以填写更多代码}<br>    <br>    est[1]:=false<br>    <br>    lse test[1]:=true;<br>    <br>    end;<br>    <br>    procedure TForm1.DBEdit2Exit(Sender:TObject);<br>    <br>    begin<br>    <br>    if DbEdit2.text=′′ then<br>    <br>    test[2]:=false<br>    <br>    lse test[2]:=true;<br>    <br>    end;<br>    <br>    procedure TForm1.DBEdit3Exit(Sender:TObject);<br>    <br>    begin<br>    <br>    if DbEdit3.text=′′ then<br>    <br>    est[3]:=false<br>    <br>    lse test[3]:=true;<br>    <br>    end;<br>    <br>    六、编写Button1的Onclick事件代码如下:<br>    <br>    procedure TForm1.Button1Click(Sender:TObject);<br>    <br>    var i:integer;<br>    <br>    begin<br>    <br>    i:=1;<br>    <br>    while test[i] and (i&lt;=3) do {检测test数组元素是否为真}<br>    <br>    i:=i+1;<br>    <br>    if i&lt;=3 then {有数据输入为空的情况}<br>    <br>    begin showmessage(′数据未完全录入′); {提示}<br>    <br>    case i of<br>    <br>    1:DbEdit1.Setfocus;<br>    <br>    2:DbEdit2.Setfocus;<br>    <br>    3:DbEdit3.Setfocus;<br>    <br>    end; {激活数据输入为空的DbEdit }<br>    <br>    end<br>    <br>    else begin table1.post; {如果输入都非空,则存入库中}<br>    <br>    Button1.Enabled:=false;<br>    <br>    Button2.Enabled:=true;<br>    <br>    end;<br>    <br>    end;<br>    <br>    七、编写Button2的OnClick事件代码如下:<br>    <br>    procedure TForm1.Button2Click(Sender:TObject);<br>    <br>    var i:integer;<br>    <br>    begin<br>    <br>    for i:=1 to 3 do test[i]:=false; {初始化数组}<br>    <br>    table1.open; {打开数据库}<br>    <br>    table1.Append; {增加一条空记录}<br>    <br>    table1.edit; {使库处于修改状态}<br>    <br>    DbEdit1.setfocus;<br>    <br>    Button1.Enabled:=true;<br>    <br>    Button2.Enabled:=false;<br>    <br>    end;<br>    <br>    八、编写Form1的OnClose事件代码如下:<br>    <br>    procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);<br>    <br>    begin<br>    <br>    table1.close; {关闭数据库}<br>    <br>    end;<br>    <br>    九、存盘并运行程序,单击“录入”后向DbEdit框中输入数据,输入完毕按“确定”按钮,若某个DbEdit框未输入数据,这时会出现一个提示框,显示出错信息,而且入库操作不会进行,光标会停留在未输入数据的DbEdit框中,等待用户输入数据,直到必须输入数据的DbEdit框都被填入数据后,这条记录才会被存入库中。这样就避免了不完整记录的入库。<br>    <br>    显然,我们还可以在DbEdit的OnExit事件中加入更多的代码,来对该框进行更精确的控制,这里限于篇幅,就不在一一举例了。<br>    <br>    注意:有些数据库并不是要求每个字段都非空,这时只需对要求非空的字段加以控制就行了。表2     控件名称 属性 作用 DataSource1 DataSet:Table   DbEdit1DbEdit2DbEdit3     DataSource:DataSource1 DataField:nameDataField:ageDataField:work     用于输入姓名用于输入年龄用于输入职业 Table     DataBaseName:manTalbeName:people.dbf 指定别名及数据库名称 Button1 Caption:确定     确定向库中写入数据 Button2 Caption:录入 开始数据输入操作<br>    </td>  </tr></tbody></table></center></div><hr align="center" SIZE="1" width="700"><p align="center" class="ourfont"><span><span><font color="#000000">&nbsp; <a style="color: rgb(0,0,0); text-decoration: none" href="../../soft/network/index.htm">互联网络</font><font color="#FFFFFF"> </font></a><font color="#000000">|</span></span><a href="../../soft/system/index.htm" style="color: rgb(0,0,0); text-decoration: none">系统工具</a><span>|<span> <a href="../../soft/tools/index.htm" style="color: rgb(0,0,0); text-decoration: none">实用工具</a> | <a href="../../soft/multimedia/index.htm" style="color: rgb(0,0,0); text-decoration: none">媒体工具</a> | <a href="../../soft/image/index.htm" style="color: rgb(0,0,0); text-decoration: none">图形图像</a> | <a href="../../soft/game/index.htm" style="color: rgb(0,0,0); text-decoration: none">游戏娱乐</a> | </span><a href="../../soft/usesoft/index.htm" style="color: rgb(0,0,0); text-decoration: none">软件<span>使用</a></font><font color="#FFFFFF"> |</font>&nbsp; </span></span></p><hr align="center" SIZE="1" width="700"><font color="#FFE8BB"><p align="center" class="ourfont"></font><font color="#000000"><span><span>&copy;&nbsp;Copyright 2000 </span></span>陕西公用计算机互联网信息中心<span><span> 版权所有 </font></p></span></span><p align="center" class="ourfont"><font color="#000000"><span><span>本站制作维护by <a style="color: rgb(0,0,0)" href="mailto:haiyuan@163.sn.cn">HAIYUAN</a></span></span></font></p><p align="center" class="ourfont"><font color="#000000"><span><span>电话:(029)8371051 8371055 8371049 联系信箱:<a href="mailto:net@163.sn.cn">net@163.sn.cn</a></span></span></font></p></body></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -