📄 006.htm
字号:
<p><font face="宋体" lang="ZH-CN"> 字符串型:</font>PChar<font
face="宋体" lang="ZH-CN">,是一个指向以零结尾的字符串的指针。</font></p>
<p><font face="宋体" lang="ZH-CN">
除了预定义类型外,</font>Delphi<font
face="宋体" lang="ZH-CN">还有自行定义的类型。上述例程的</font>TColor<font
face="宋体" lang="ZH-CN">就是这种类型。此外,用户还可以定义自己的数据类型,这部分内容将在下文中详细讲述。</font></p>
<p><font face="宋体" lang="ZH-CN">
整型类别和实型类别都各有五种类型,同一类别中,所有的类型与其他同类别的都相容,您可以将一种类型的值赋给相同类别中不同类型的变量或属性,而只需要这个值的范围在被赋值的变量或属性的可能值范围内。例如,对于一个</font>Shortint<font
face="宋体" lang="ZH-CN">型的变量,可以接受在</font>-128<font face="宋体"
lang="ZH-CN">到</font>127<font face="宋体" lang="ZH-CN">范围内的任意整数,例如</font>Shortint<font
face="宋体" lang="ZH-CN">类型的</font>7<font face="宋体" lang="ZH-CN">;您不能将</font>300<font
face="宋体" lang="ZH-CN">赋给它,因为</font>300<font face="宋体" lang="ZH-CN">已经超出了</font>Shortint<font
face="宋体" lang="ZH-CN">的范围了。将范围检查功能打开</font>(<font
face="宋体" lang="ZH-CN">选用</font>Options|Project<font face="宋体" lang="ZH-CN">,并在</font>Compiler
Options Page<font face="宋体" lang="ZH-CN">中选择</font>Range Checking)<font
face="宋体" lang="ZH-CN">,将会检查出一个范围错误;如果</font>Range
Checking<font face="宋体" lang="ZH-CN">没有被打开,那么程序代码将可以执行,但被赋值的值将不是您期望的值。</font></p>
<p><font face="宋体" lang="ZH-CN">
在一些情况下,您可以进行不同类型的变量或属性的赋值。一般来说,可以将一个较小范围的值赋给一个较大范围的值。例如,您可以将整型值</font>10<font
face="宋体" lang="ZH-CN">赋给一个接受实型值的</font>Double<font face="宋体"
lang="ZH-CN">属性而使得值成为</font>10.0<font face="宋体" lang="ZH-CN">,但如果将一个</font>Double<font
face="宋体" lang="ZH-CN">类型的值赋给整形变量,则会出现类型错误。如果您不清楚类型的兼容性,可以参阅</font>Delphi<font
face="宋体" lang="ZH-CN">的在线帮助中“</font>Type Compatibility and Assignment
Compatibility<font face="宋体" lang="ZH-CN">”主题。 </p>
</font><p>2.1.2.3 <font face="宋体" lang="ZH-CN">常量 </p>
</font><p><font face="宋体" lang="ZH-CN">
常量在说明时就被赋予了一个值,在程序执行过程中是不可改变的。下面的例子说明了三个常量: </p>
</font><p>const</p>
<p>Pi = 3.14159;</p>
<p>Answer = 342;</p>
<p>ProductName = "Delphi"; </p>
<p><font face="宋体" lang="ZH-CN">
象变量一样,常量也有类型。不同的是,常量假设其类型就是常量说明中其所代表的值的类型。上文的三个常量的类型分别是</font>real<font
face="宋体" lang="ZH-CN">型、整形、字符串型。常量用“</font>= " <font
face="宋体" lang="ZH-CN">表示两边的值是相等的。 </p>
</font><p>2.1.3 <font face="宋体" lang="ZH-CN">过程与函数 </p>
</font><p><font face="宋体" lang="ZH-CN">
过程与函数是程序中执行特定工作的模块化部分。</font>Delphi<font
face="宋体" lang="ZH-CN">的运行库包含许多过程与函数以供您的应用程序调用。您不必了解过程与函数的逻辑,但要知道过程与函数的用途。在对象中说明的过程和函数称为方法</font>(Method)<font
face="宋体" lang="ZH-CN">。所有的事件处理过程都是过程,以保留字</font>procedure<font
face="宋体" lang="ZH-CN">开头。每一个事件处理过程只包含了当这一事件发生时需要执行的程序代码。在事件处理过程中使用</font>Delphi<font
face="宋体" lang="ZH-CN">已经存在的过程与函数,只需在程序代码中调用它们即可。 </p>
</font><p>2.1.3.1 <font face="宋体" lang="ZH-CN">一个调用</font>Delphi<font
face="宋体" lang="ZH-CN">方法的简单例程 </p>
</font><p><font face="宋体" lang="ZH-CN">
下文将通过对一个</font>Memo<font face="宋体"
lang="ZH-CN">部件的文本进行剪切、拷贝、粘贴、清除等编辑的应用程序编制,介绍使用</font>Delphi<font
face="宋体" lang="ZH-CN">过程和函数的调用方法。</font></p>
<p> Memo(<font face="宋体" lang="ZH-CN">备注</font>)<font
face="宋体" lang="ZH-CN">部件有一个</font>CutToClipboard<font face="宋体"
lang="ZH-CN">方法,实现将用户在</font>memo<font face="宋体" lang="ZH-CN">中选择的文本移到剪贴板上去。由于这个功能已经被建立在此方法中了,所以您只需知道这个方法做什么以及如何使用它即可。</font></p>
<p><font face="宋体" lang="ZH-CN">
下面的语句表明如何调用一个名为</font>Memo1<font
face="宋体" lang="ZH-CN">的</font>memo<font face="宋体" lang="ZH-CN">部件的</font>CutToClipboard<font
face="宋体" lang="ZH-CN">方法: </p>
</font><p> Memo1.CutToClipboard; </p>
<p><font face="宋体" lang="ZH-CN"> 通过指定</font>Memo1<font
face="宋体" lang="ZH-CN">的名称,说明调用哪一个部件的</font>CutToClipboard<font
face="宋体" lang="ZH-CN">方法。如果不指明对象名称,</font>Delphi<font
face="宋体" lang="ZH-CN">会显示</font>Unknown identifier<font face="宋体"
lang="ZH-CN">错误。当该事件处理过程被触发,程序会执行</font>CutToclipboard<font
face="宋体" lang="ZH-CN">中的语句,将</font>Memo1<font face="宋体" lang="ZH-CN">中的文本剪贴到剪贴板上去。</font></p>
<p><font face="宋体" lang="ZH-CN">
下文的例程展示了如何调用</font>Delphi<font
face="宋体" lang="ZH-CN">的方法,实现将备注部件的文本信息剪切、拷贝到剪贴板上;将剪贴板上的标记文本粘贴到备注中,清除备注部件中的全部文本等四个功能。</font></p>
<p><font face="宋体" lang="ZH-CN">
打开一个新的空窗体,加入一个</font>memo<font
face="宋体" lang="ZH-CN">部件和四个按钮,并排列整齐。改变按钮部件的</font>Name<font
face="宋体" lang="ZH-CN">属性,分别命名为</font>Cut,Copy,Paste,Clear<font
face="宋体" lang="ZH-CN">。您会发现,当</font>Name<font face="宋体"
lang="ZH-CN">属性发生改变时,</font>Caption<font face="宋体" lang="ZH-CN">属性将发生相应的变化。在</font>Caption<font
face="宋体" lang="ZH-CN">属性前加标“</font>&<font face="宋体" lang="ZH-CN">”号设立加速键</font></p>
<p><font face="宋体" lang="ZH-CN"> 将</font>memo<font
face="宋体" lang="ZH-CN">部件的</font>ScrollBars<font face="宋体" lang="ZH-CN">属性设为</font>ScVertical<font
face="宋体" lang="ZH-CN">,以便加上滚行条。将</font>WordWrap<font
face="宋体" lang="ZH-CN">属性设置为</font>True<font face="宋体" lang="ZH-CN">,这样当用户输入文本到达</font>Memo<font
face="宋体" lang="ZH-CN">部件的右边缘时会自动回行。将</font>Line<font
face="宋体" lang="ZH-CN">属性第一行的</font>Memo1<font face="宋体" lang="ZH-CN">文本删除,使得</font>memo<font
face="宋体" lang="ZH-CN">部件在初始显示时为空的。</font></p>
<p><font face="宋体" lang="ZH-CN">为每一个按钮建立如下的事件处理过程: </p>
</font><p>procedure TForm1.CutClick(Sender: TObject)<font face="宋体" lang="ZH-CN">;</font></p>
<p>begin</p>
<p>Memo1.CutToClipboard;</p>
<p>end; </p>
<p>procedure TForm1.CopyClick(Sender: TObject);</p>
<p>begin</p>
<p>Memo1.CopyToClipboard;</p>
<p>end; </p>
<p>procedure TForm1.PasteClick(Sender: TObject);</p>
<p>begin</p>
<p>Memo1.PasteFromClipboard;</p>
<p>end; </p>
<p>procedure TForm1.ClearClick(Sender: TObject);</p>
<p>begin</p>
<p>Memo1.clear;</p>
<p>end; </p>
<p><font face="宋体" lang="ZH-CN">
执行此程序。您可以在备注部件中输入文本,在进行了文本的标记后,可以任意地进行剪切、拷贝、粘贴和清除。当按钮被按动时,就调用相应的过程进行处理。用户可以通过查阅在线帮助进行</font>Memo<font
face="宋体" lang="ZH-CN">部件的</font>Topic Search<font face="宋体" lang="ZH-CN">,在</font>Memo
Component<font face="宋体" lang="ZH-CN">项中查阅</font>Method<font face="宋体"
lang="ZH-CN">,会得到以上过程的详细说明。 </p>
</font><p>2.1.3.2 <font face="宋体" lang="ZH-CN">调用</font>Delphi<font face="宋体"
lang="ZH-CN">的含参过程 </p>
</font><p><font face="宋体" lang="ZH-CN">
有些过程要求用户指明参数。被调用的过程会在执行时使用传入的参数值,这些值在过程中被认为是已经被说明的变量。例如,</font>LoadFromFile<font
face="宋体" lang="ZH-CN">方法在</font>TString<font face="宋体" lang="ZH-CN">对象中被说明为: </p>
</font><p>Procedure LoadFromFile(const FileName: String)<font face="宋体" lang="ZH-CN">; </p>
</font><p><font face="宋体" lang="ZH-CN">
在调用这一过程时,应指明</font>FileName<font
face="宋体" lang="ZH-CN">参数是要装入的文件名称。下面的程序将先打开</font>Open<font
face="宋体" lang="ZH-CN">对话框,当您选择了一个文件后,</font>Delphi<font
face="宋体" lang="ZH-CN">将把该文件读入一个</font>Memo<font face="宋体"
lang="ZH-CN">部件: </p>
</font><p>begin</p>
<p>OpenDialog.Execute;</p>
<p>Memo1.lines.LoadFromFile(OpenDialog.FileName);</p>
<p>end; </p>
<p>2.1.3.3 <font face="宋体" lang="ZH-CN">使用</font>Delphi<font face="宋体"
lang="ZH-CN">函数 </p>
</font><p><font face="宋体" lang="ZH-CN">
与过程一样,函数的程序代码也执行特定的工作。它和过程的差别为:函数执行时会返回一个值,而过程则没有返回值。函数可以用来赋给一个属性或变量;也可以使用返回值来决定程序的流程。</font></p>
<p><font face="宋体" lang="ZH-CN">
前文中我们实际上已经接触过了函数。在讲述变量时,曾用到过下面的程序段:</font>
Edit1.Text := IntToStr(X + Y)<font face="宋体" lang="ZH-CN">;其中,</font>IntToStr(Value)<font
face="宋体" lang="ZH-CN">把一个</font>LongInt<font face="宋体" lang="ZH-CN">类型的数值转化为字符串的值,</font>Value<font
face="宋体" lang="ZH-CN">是</font>IntToStr<font face="宋体" lang="ZH-CN">唯一的参数,它可以是一个整形的值、变量、属性或产生整形值的表达式。调用函数,必须把返回值赋给和此返回值类型兼容的变量或属性。</font></p>
<p><font face="宋体" lang="ZH-CN">
有些函数返回一个</font>True<font
face="宋体" lang="ZH-CN">或</font>False<font face="宋体" lang="ZH-CN">的布尔量,用户的程序可以根据返回值来决定跳转。下文的例程讲述了函数返回值为</font>Boolean<font
face="宋体" lang="ZH-CN">的判断用法:</font></p>
<p><font face="宋体" lang="ZH-CN">
在窗体中加入一个</font>ColorDialog<font
face="宋体" lang="ZH-CN">对象和一个</font>Name<font face="宋体" lang="ZH-CN">属性为</font>ChangeColor<font
face="宋体" lang="ZH-CN">的按钮。为按钮的</font>OnClick<font face="宋体"
lang="ZH-CN">事件建立事件处理过程如下: </p>
</font><p>procedure TForm1.ChangeColorClick(Sender: TObject);</p>
<p>begin</p>
<p>if ColorDialog1.Execute then</p>
<p>Form1.Color := ColorDialog1.Color</p>
<p>else</p>
<p>Form1.Color := clRed;</p>
<p>end; </p>
<p><font face="宋体" lang="ZH-CN">
此事件处理过程使用一个返回</font>Boolean<font
face="宋体" lang="ZH-CN">值的</font>Execute<font face="宋体" lang="ZH-CN">方法。按动按钮,并在颜色对话框中选择一个颜色。如果按动</font>OK<font
face="宋体" lang="ZH-CN">按钮,</font>ColorDialog.Execute<font face="宋体"
lang="ZH-CN">方法将返回</font>True<font face="宋体" lang="ZH-CN">,则</font>Form1.Color<font
face="宋体" lang="ZH-CN">将被赋值为</font>ColorDialog1.Color<font face="宋体"
lang="ZH-CN">,窗体显现您选用的颜色;如果按动颜色对话框的</font>Cancel<font
face="宋体" lang="ZH-CN">按钮,方法将返回</font>False<font face="宋体"
lang="ZH-CN">值,窗体将变为红色。</font></p>
<hr color="#EE9B73" size="1" width="94%">
</TD>
<TD CLASS="tt3" VALIGN="bottom" width="8%" bgcolor="#e0e0e0"><strong><A HREF="007.htm"><FONT style="FONT-SIZE: 9pt">后一页</font></A><BR>
<A HREF="005.htm"><FONT style="FONT-SIZE: 9pt">前一页</font></A><BR>
<A HREF="index.html"><FONT style="FONT-SIZE: 9pt">回目录</font></A><BR>
<A HREF="../../../../index.htm"><FONT style="FONT-SIZE: 9pt">回首页</font></A><BR>
</strong>
</TD>
</TR>
</table>
</BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -