Delphi面向对象的编程方法(二)
一个调用Delphi方法的简单例程
下文将通过对一个Memo部件的文本进行剪切 拷贝 粘贴 清除等编辑的应用程序编制 介绍使用Delphi过程和函数的调用方法
Memo(备注)部件有一个CutToClipboard方法 实现将用户在memo中选择的文本移到剪贴板上去 由于这个功能已经被建立在此方法中了 所以您只需知道这个方法做什么以及如何使用它即可
下面的语句表明如何调用一个名为Memo 的memo部件的CutToClipboard方法
Memo CutToClipboard;
通过指定Memo 的名称 说明调用哪一个部件的CutToClipboard方法 如果不指明对象名称 Delphi会显示Unknown identifier错误 当该事件处理过程被触发 程序会执行CutToclipboard中的语句 将Memo 中的文本剪贴到剪贴板上去
下文的例程展示了如何调用Delphi的方法 实现将备注部件的文本信息剪切 拷贝到剪贴板上 将剪贴板上的标记文本粘贴到备注中 清除备注部件中的全部文本等四个功能
打开一个新的空窗体 加入一个memo部件和四个按钮 并排列整齐 改变按钮部件的Name属性 分别命名为Cut Copy Paste Clear 您会发现 当Name属性发生改变时 Caption属性将发生相应的变化 在Caption属性前加标 & 号设立加速键
将memo部件的ScrollBars属性设为ScVertical 以便加上滚行条 将WordWrap属性设置为True 这样当用户输入文本到达Memo部件的右边缘时会自动回行 将Line属性第一行的Memo 文本删除 使得memo部件在初始显示时为空的
为每一个按钮建立如下的事件处理过程
procedure TForm CutClick(Sender: TObject) begin Memo CutToClipboard; end; procedure TForm CopyClick(Sender: TObject); begin Memo CopyToClipboard; end; procedure TForm PasteClick(Sender: TObject); begin Memo PasteFromClipboard; end; procedure TForm ClearClick(Sender: TObject); begin Memo clear; end;
执行此程序 您可以在备注部件中输入文本 在进行了文本的标记后 可以任意地进行剪切 拷贝 粘贴和清除 当按钮被按动时 就调用相应的过程进行处理 用户可以通过查阅在线帮助进行Memo部件的Topic Search 在Memo Component项中查阅Method 会得到以上过程的详细说明
调用Delphi的含参过程
有些过程要求用户指明参数 被调用的过程会在执行时使用传入的参数值 这些值在过程中被认为是已经被说明的变量 例如 LoadFromFile方法在TString对象中被说明为
Procedure LoadFromFile(const FileName: String)
在调用这一过程时 应指明FileName参数是要装入的文件名称 下面的程序将先打开Open对话框 当您选择了一个文件后 Delphi将把该文件读入一个Memo部件
begin OpenDialog Execute; Memo lines LoadFromFile(OpenDialog FileName); end;
使用Delphi函数
与过程一样 函数的程序代码也执行特定的工作 它和过程的差别为 函数执行时会返回一个值 而过程则没有返回值 函数可以用来赋给一个属性或变量 也可以使用返回值来决定程序的流程
前文中我们实际上已经接触过了函数 在讲述变量时 曾用到过下面的程序段 Edit Text := IntToStr(X + Y) 其中 IntToStr(Value)把一个LongInt类型的数值转化为字符串的值 Value是IntToStr唯一的参数 它可以是一个整形的值 变量 属性或产生整形值的表达式 调用函数 必须把返回值赋给和此返回值类型兼容的变量或属性
有些函数返回一个True或False的布尔量 用户的程序可以根据返回值来决定跳转 下文的例程讲述了函数返回值为Boolean的判断用法
在窗体中加入一个ColorDialog对象和一个Name属性为ChangeColor的按钮 为按钮的OnClick事件建立事件处理过程如下
procedure TForm ChangeColorClick(Sender: TObject); begin if ColorDialog Execute then Form Color := ColorDialog Color else Form Color := clRed; end; &nbs; 此事件处理过程使用一个返回Boo
lishixinzhi/Article/program/Delphi/201311/8533