摘要:
//类中的方法重载首先具备前面说过的重载相关的所有特点, 如: TMyClass = class(TObject) function Fun(s: string): string; overload; function Fun(i: Integer): Integer; overload; func 阅读全文
摘要:
//静态方法是默认的, 如果不是虚方法或纯虚方法, 那它就是一个静态方法. //类方法就是通过类名就可以访问的方法 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Control 阅读全文
摘要:
//下面说的数据成员不仅仅指方法 TMyClass = class(TObject) function Fun1: string; {公共区域的数据成员在默认状态下会归于 published 区} //所谓默认状态就是编译指令为{$M+}, 如果是{$M-}这些数据成员会归于 public 区 pr 阅读全文
摘要:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) en 阅读全文
摘要:
//标准的覆盖是这样的 TBass = class procedure Proc; virtual; {或用 dynamic} end; TChild = class(TBass) procedure Proc; override; end; //以下几种情况属于重定义, 其中例 3-5 还会有编译 阅读全文
摘要:
方法来到类中, 以前的特点基本都在;因为类一般是存在于一个继承链中, 所以就有了一些新的概念, 譬如: 继承、覆盖;也有了很多新名称, 譬如: 静态方法、虚方法、动态方法、抽象方法、类方法、消息方法.先从虚方法与动态方法开始吧 //下面的类中就定义了两个虚方法(virtual)、两个动态方法(dyn 阅读全文
摘要:
关于属性的话题还有很多, 譬如: 数组属性、默认属性、class 属性等等.先总结一下前面提到过的属性吧. TMyClass = class(TObject) private FName: string; procedure SetName(const Value: string); publish 阅读全文
摘要:
{给这个函数可以赋常数变量} function Fun1(x,y: Integer): Integer; begin Result := x + y; end; {这个函数不能赋予常数变量} function Fun2(var x,y: Integer): Integer; begin Result 阅读全文
摘要:
//上面一个例子不能说明递归函数的本质, 直接来个实用的函数吧, 刚好要用. unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, 阅读全文
摘要:
//所谓递归函数, 就是自己调用自己的函数, 先来个简单的例子: {递归调用的简单示例} procedure alert(i: Integer = 1); begin ShowMessage(IntToStr(i)); {这是方法的功能} Inc(i); if i<10 then alert(i); 阅读全文