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

📄 ch35.htm

📁 MAPI__SAPI__TAPI
💻 HTM
📖 第 1 页 / 共 5 页
字号:
from Listing 35.17. </p>

<hr>

<blockquote>
  <b><p>Listing 35.17. Adding the <tt><font FACE="Courier">EditRec</font></tt> routine.<br>
  </b></p>
</blockquote>

<blockquote>
  <tt><font FACE="Courier"><p>Public Sub EditRec(cName As String)<br>
  &nbsp;&nbsp;&nbsp;&nbsp;'<br>
  &nbsp;&nbsp;&nbsp;&nbsp;' edit an existing record<br>
  &nbsp;&nbsp;&nbsp;&nbsp;'<br>
  &nbsp;&nbsp;&nbsp;&nbsp;Dim iAns As Integer<br>
  &nbsp;&nbsp;&nbsp;&nbsp;'<br>
  &nbsp;&nbsp;&nbsp;&nbsp;cName = Trim(cName)<br>
  &nbsp;&nbsp;&nbsp;&nbsp;rsPhone.FindFirst &quot;Name='&quot; &amp; cName &amp; 
  &quot;'&quot;<br>
  &nbsp;&nbsp;&nbsp;&nbsp;If rsPhone.NoMatch = False Then<br>
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Load frmVRec<br>
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;frmVRec.txtName = 
  rsPhone.Fields(&quot;Name&quot;)<br>
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;frmVRec.txtPhone = 
  rsPhone.Fields(&quot;Phone&quot;)<br>
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;frmVRec.lblaction = &quot;EDIT&quot;<br>
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;frmVRec.Show vbModal <br>
  &nbsp;&nbsp;&nbsp;&nbsp;End If<br>
  &nbsp;&nbsp;&nbsp;&nbsp;'<br>
  End Sub</font></tt> </p>
</blockquote>

<hr>

<p>The <tt><font FACE="Courier">DeleteRec</font></tt> subroutine consists of a single 
message box confirmation and the delete action. Add the code in Listing 35.18 to the 
module. </p>

<hr>

<blockquote>
  <b><p>Listing 35.18. Adding the <tt><font FACE="Courier">DeleteRec</font></tt> routine.<br>
  </b></p>
</blockquote>

<blockquote>
  <tt><font FACE="Courier"><p>Public Sub DeleteRec(cName As String) <br>
  &nbsp;&nbsp;&nbsp;&nbsp;'<br>
  &nbsp;&nbsp;&nbsp;&nbsp;' delete record from table<br>
  &nbsp;&nbsp;&nbsp;&nbsp;'<br>
  &nbsp;&nbsp;&nbsp;&nbsp;Dim iAns As Integer<br>
  &nbsp;&nbsp;&nbsp;&nbsp;'<br>
  &nbsp;&nbsp;&nbsp;&nbsp;cName = Trim(cName)<br>
  &nbsp;&nbsp;&nbsp;&nbsp;iAns = MsgBox(cName, vbExclamation + vbYesNo, &quot;Delete 
  Record&quot;)<br>
  &nbsp;&nbsp;&nbsp;&nbsp;If iAns = vbYes Then<br>
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsPhone.FindFirst &quot;Name = '&quot; 
  &amp; cName &amp; &quot;'&quot;<br>
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If rsPhone.NoMatch = False Then<br>
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsPhone.Delete <br>
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rsPhone.MoveNext <br>
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br>
  &nbsp;&nbsp;&nbsp;&nbsp;End If<br>
  &nbsp;&nbsp;&nbsp;&nbsp;'<br>
  End Sub</font></tt> </p>
</blockquote>

<hr>

<p>Finally, add a new function called <tt><font FACE="Courier">LookUp</font></tt> to the 
module. This function takes one parameter (the <tt><font FACE="Courier">Name</font></tt>) 
and returns the corresponding phone number. Enter the code from Listing 35.19. </p>

<hr>

<blockquote>
  <b><p>Listing 35.19. Adding the <tt><font FACE="Courier">LookUp</font></tt> function.<br>
  </b></p>
</blockquote>

<blockquote>
  <tt><font FACE="Courier"><p>Public Function LookUp(cName As String) As String<br>
  &nbsp;&nbsp;&nbsp;&nbsp;'<br>
  &nbsp;&nbsp;&nbsp;&nbsp;' lookup a name in the list<br>
  &nbsp;&nbsp;&nbsp;&nbsp;' return the phone number<br>
  &nbsp;&nbsp;&nbsp;&nbsp;'<br>
  &nbsp;&nbsp;&nbsp;&nbsp;Dim cRtn As String<br>
  &nbsp;&nbsp;&nbsp;&nbsp;'<br>
  &nbsp;&nbsp;&nbsp;&nbsp;cName = Trim(cName)<br>
  &nbsp;&nbsp;&nbsp;&nbsp;rsPhone.FindFirst &quot;Name = '&quot; &amp; cName &amp; 
  &quot;'&quot;<br>
  &nbsp;&nbsp;&nbsp;&nbsp;If rsPhone.NoMatch = True Then<br>
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cRtn = &quot;&quot; <br>
  &nbsp;&nbsp;&nbsp;&nbsp;Else<br>
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cRtn = 
  rsPhone.Fields(&quot;Phone&quot;).Value <br>
  &nbsp;&nbsp;&nbsp;&nbsp;End If<br>
  &nbsp;&nbsp;&nbsp;&nbsp;'<br>
  &nbsp;&nbsp;&nbsp;&nbsp;LookUp = cRtn<br>
  &nbsp;&nbsp;&nbsp;&nbsp;'<br>
  End Function</font></tt> </p>
</blockquote>

<hr>

<h3><b><a NAME="AddingtheTAPIandFormSupportRoutine">Adding the TAPI and Form Support 
Routines</a></b></h3>

<p>Only two support routines are left. The <tt><font FACE="Courier">PlaceCall</font></tt> 
routine is used to perform the Assisted TAPI service request. Listing 35.20 shows you the 
code for this routine. </p>

<hr>

<blockquote>
  <b><p>Listing 35.20. Adding the <tt><font FACE="Courier">PlaceCall</font></tt> routine.<br>
  </b></p>
</blockquote>

<blockquote>
  <tt><font FACE="Courier"><p>Public Sub PlaceCall(cPhone As String, cName As String)<br>
  &nbsp;&nbsp;&nbsp;&nbsp;'<br>
  &nbsp;&nbsp;&nbsp;&nbsp;Dim tCall As TAPICall<br>
  &nbsp;&nbsp;&nbsp;&nbsp;Dim lRtn As Long<br>
  &nbsp;&nbsp;&nbsp;&nbsp;'<br>
  &nbsp;&nbsp;&nbsp;&nbsp;If Trim(cPhone) &lt;&gt; &quot;&quot; Then<br>
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tCall.Address = cPhone<br>
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tCall.AppName = App.EXEName<br>
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tCall.CalledParty = cName<br>
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tCall.Comment = &quot;&quot;<br>
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lRtn = TAPIMakeCall(tCall) <br>
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If lRtn &lt; 0 Then<br>
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MsgBox lRtn, 
  vbcritical, &quot;TAPI Error!&quot;<br>
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br>
  &nbsp;&nbsp;&nbsp;&nbsp;End If<br>
  &nbsp;&nbsp;&nbsp;&nbsp;'<br>
  End Sub</font></tt> </p>
</blockquote>

<hr>

<p>The last routine is one that is used to center dialog boxes on the screen. Add the code 
from Listing 35.21 to your project. </p>

<hr>

<blockquote>
  <b><p>Listing 35.21. Adding the <tt><font FACE="Courier">CenterForm</font></tt> routine.<br>
  </b></p>
</blockquote>

<blockquote>
  <tt><font FACE="Courier"><p>Public Sub CenterForm(frm As Form)<br>
  &nbsp;&nbsp;&nbsp;&nbsp;'<br>
  &nbsp;&nbsp;&nbsp;&nbsp;frm.Left = (Screen.Width - frm.Width) / 2<br>
  &nbsp;&nbsp;&nbsp;&nbsp;frm.Top = (Screen.Height - frm.Height) / 2<br>
  &nbsp;&nbsp;&nbsp;&nbsp;'<br>
  End Sub</font></tt> </p>
</blockquote>

<hr>

<p>That is the end of the LibVPhone module code. Save this module (<tt><font
FACE="Courier">VPHONE.BAS</font></tt>) and the project (<tt><font FACE="Courier">VPHONE.VBP</font></tt>) 
before you move to the next section. </p>

<h2><b><a NAME="LayingOuttheVPhoneForm"><font SIZE="5" COLOR="#FF0000">Laying Out the </font><tt><font
SIZE="5" COLOR="#FF0000" FACE="Courier">VPhone</font></tt><font SIZE="5" COLOR="#FF0000"> 
Form</font></a></b></h2>

<p>The <tt><font FACE="Courier">Vphone</font></tt> form is the main dialog box of the 
project. The first step is to lay out the controls on the form. Then you can add the menu 
and the code behind the form. Refer to Figure 35.2 and Table 35.1 for details on the size 
and position of the controls on the form. </p>

<p><a HREF="f35-2.gif"><b>Figure 35.2 :</b> <i>Laying out the Vphone form.</i></a> <br>
</p>

<p align="center"><b>Table 35.1. Controls for the <tt><font FACE="Courier">VPhone</font></tt> 
form.</b> </p>
<div align="center"><center>

<table BORDERCOLOR="#000000" BORDER="1" WIDTH="80%">
  <tr>
    <td><i>Control</i></td>
    <td WIDTH="150"><i>Property</i> </td>
    <td WIDTH="132"><i>Setting</i></td>
  </tr>
  <tr>
    <td WIDTH="175"><tt><font FACE="Courier">VB.Form</font></tt> </td>
    <td WIDTH="150"><tt><font FACE="Courier">Name</font></tt></td>
    <td WIDTH="132">frmVPhone</td>
  </tr>
  <tr>
    <td WIDTH="175"> </td>
    <td WIDTH="150"><tt><font FACE="Courier">BorderStyle</font></tt> </td>
    <td WIDTH="132">3 'Fixed Dialog</td>
  </tr>
  <tr>
    <td WIDTH="175"> </td>
    <td WIDTH="150"><tt><font FACE="Courier">Caption</font></tt> </td>
    <td WIDTH="132">&quot;Form1&quot;</td>
  </tr>
  <tr>
    <td WIDTH="175"> </td>
    <td WIDTH="150"><tt><font FACE="Courier">Height</font></tt> </td>
    <td WIDTH="132">3795</td>
  </tr>
  <tr>
    <td WIDTH="175"> </td>
    <td WIDTH="150"><tt><font FACE="Courier">Icon</font></tt> </td>
    <td WIDTH="132">&quot;VPHONE.ICO&quot;</td>
  </tr>
  <tr>
    <td WIDTH="175"> </td>
    <td WIDTH="150"><tt><font FACE="Courier">Left</font></tt> </td>
    <td WIDTH="132">1755</td>
  </tr>
  <tr>
    <td WIDTH="175"> </td>
    <td WIDTH="150"><tt><font FACE="Courier">MaxButton</font></tt> </td>
    <td WIDTH="132">0 'False</td>
  </tr>
  <tr>
    <td WIDTH="175"> </td>
    <td WIDTH="150"><tt><font FACE="Courier">MinButton</font></tt> </td>
    <td WIDTH="132">0 'False</td>
  </tr>
  <tr>
    <td WIDTH="175"> </td>
    <td WIDTH="150"><tt><font FACE="Courier">ShowInTaskbar</font></tt> </td>
    <td WIDTH="132">-1 'True</td>
  </tr>
  <tr>
    <td WIDTH="175"> </td>
    <td WIDTH="150"><tt><font FACE="Courier">Top</font></tt> </td>
    <td WIDTH="132">2160</td>
  </tr>
  <tr>
    <td WIDTH="175"> </td>
    <td WIDTH="150"><tt><font FACE="Courier">Width</font></tt> </td>
    <td WIDTH="132">6720</td>
  </tr>
  <tr>
    <td WIDTH="175"><tt><font FACE="Courier">VB.CommandButton</font></tt> </td>
    <td WIDTH="150"><tt><font FACE="Courier">Name</font></tt></td>
    <td WIDTH="132">cmdPhone</td>
  </tr>
  <tr>
    <td WIDTH="175"> </td>
    <td WIDTH="150"><tt><font FACE="Courier">Caption</font></tt> </td>
    <td WIDTH="132">&quot;&amp;Help&quot;</td>
  </tr>
  <tr>
    <td WIDTH="175"> </td>
    <td WIDTH="150"><tt><font FACE="Courier">Height</font></tt> </td>
    <td WIDTH="132">300</td>
  </tr>
  <tr>
    <td WIDTH="175"> </td>
    <td WIDTH="150"><tt><font FACE="Courier">Index</font></tt> </td>
    <td WIDTH="132">4</td>
  </tr>
  <tr>
    <td WIDTH="175"> </td>
    <td WIDTH="150"><tt><font FACE="Courier">Left</font></tt> </td>
    <td WIDTH="132">5280</td>
  </tr>
  <tr>
    <td WIDTH="175"> </td>
    <td WIDTH="150"><tt><font FACE="Courier">TabIndex</font></tt> </td>
    <td WIDTH="132">7</td>
  </tr>
  <tr>
    <td WIDTH="175"> </td>
    <td WIDTH="150"><tt><font FACE="Courier">Top</font></tt> </td>
    <td WIDTH="132">2580</td>
  </tr>
  <tr>
    <td WIDTH="175"> </td>
    <td WIDTH="150"><tt><font FACE="Courier">Width</font></tt> </td>
    <td WIDTH="132">1200</td>
  </tr>
  <tr>
    <td WIDTH="175"><tt><font FACE="Courier">VB.CommandButton</font></tt> </td>
    <td WIDTH="150"><tt><font FACE="Courier">Name</font></tt></td>
    <td WIDTH="132">cmdPhone</td>
  </tr>
  <tr>
    <td WIDTH="175"> </td>
    <td WIDTH="150"><tt><font FACE="Courier">Caption</font></tt> </td>
    <td WIDTH="132">&quot;E&amp;xit&quot;</td>
  </tr>
  <tr>
    <td WIDTH="175"> </td>
    <td WIDTH="150"><tt><font FACE="Courier">Height</font></tt> </td>
    <td WIDTH="132">300</td>
  </tr>
  <tr>
    <td WIDTH="175"> </td>
    <td WIDTH="150"><tt><font FACE="Courier">Index</font></tt> </td>
    <td WIDTH="132">3</td>
  </tr>
  <tr>
    <td WIDTH="175"> </td>
    <td WIDTH="150"><tt><font FACE="Courier">Left</font></tt> </td>
    <td WIDTH="132">5280</td>
  </tr>
  <tr>
    <td WIDTH="175"> </td>
    <td WIDTH="150"><tt><font FACE="Courier">TabIndex</font></tt> </td>
    <td WIDTH="132">6</td>
  </tr>
  <tr>
    <td WIDTH="175"> </td>
    <td WIDTH="150"><tt><font FACE="Courier">Top</font></tt> </td>
    <td WIDTH="132">2160</td>
  </tr>
  <tr>
    <td WIDTH="175"> </td>
    <td WIDTH="150"><tt><font FACE="Courier">Width</font></tt> </td>
    <td WIDTH="132">1200</td>
  </tr>
  <tr>
    <td WIDTH="175"><tt><font FACE="Courier">VB.CommandButton</font></tt> </td>
    <td WIDTH="150"><tt><font FACE="Courier">Name</font></tt></td>
    <td WIDTH="132">cmdPhone</td>
  </tr>
  <tr>
    <td WIDTH="175"> </td>
    <td WIDTH="150"><tt><font FACE="Courier">Caption</font></tt> </td>

⌨️ 快捷键说明

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