delphi

Posted yoyo_zeng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了delphi相关的知识,希望对你有一定的参考价值。

type
//class 声明或者定义继承一个类class(TObject). 
TDate = class
private
fDate: TdateTime;
Month, Day, Year: Integer;
public 

//构造函数,如果定义了constructor,默认构造函数无效
constructor Create (y, m, d: Integer);
constructor Create; overload;

//Destructor用于标识析构函数, 析构函数在类被释放时自动调用.析构函数只允许覆盖, 再不允许重载
//Free时,会调用Destory,调用前会判断是否为nil,但是调用后不会将self置为nil,因为不知道本身是否被引用。
destructor Destroy;override;

//procedure 无返回值
procedure SetValue (y, m, d: Integer); overload//overload 重载
procedure SetValue (NewDate: TDateTime); overload;
function LeapYear: Boolean;
function GetText: String;
procedure Increase;
proceure Y;

//虚拟函数,通C++相同,通过virtual table(VMT)来找到virtual函数入口,包含父类的VMT
function Voice:String; virtual;
//动态方法,结果和virtual相同,差别在于编译时候使用动态方发表(DMT),
//子类使用唯一的数字+动态方法地址构成DMT,但是不包含祖先的DMT。所以运行时内存小,但是速度慢
//function Voice:String; dynamic;

//抽象函数,同C++,抽象函数,不能定义实例
function Jump:String; virtual; abstract;

//message方法可用于处理windows消息,可调用postMessage(TDateObj.hANDLE,wm_User, 0, 0); var是引用
procedure WMUser(var Msg: TMessage); message wm_User;

//属性名 : 属性值类型 read 属性读函数/属性值变量 write 属性写函数/属性值变量,write属性可以省略,变成只读
property Year: Integer read GetYear write SetYear;
end;

constructor TDate.Create;
begin
Day:= 0;
end;


type
TClassB = clas(TDate)
public
//父类可以访问子类方法
class procedure X;

//和C++一样叫虚拟函数,和java一样有override关键字...... 必须父类函数是virtual,如果不是,是覆盖而不是刻意动态绑定
function Voice:String; override;
end

procedure TDate.GetYear;
begin
Result := YearOf(fDate);
end;

procedure TDate.Y;
begin 
//Self访问当前对象,无参数方法可以省略()
Self.X;
end;


 

 

//is 判断类型
if obj is ClassB then
xxxxx

//as 类型转换
(obj as ClassB).do

//异常处理
tryexceptend; 
tryfinallyend;
//和try…except…end不同,该结构的finally部分总被执行
//不存在try…except…finally…end结构来既处理异常,又保护资源分配的结构
//允许如下结构,从而实现既处理异常,又保护资源的分配
try
 tryexceptend  
finally
end;

//触发异常,类似C++ throw
raise xxxException;

 

以上是关于delphi的主要内容,如果未能解决你的问题,请参考以下文章

Delphi7:快捷键

使用delphi+intraweb进行微信开发1~4代码示例

Delphi创建Windows快捷方式

Delphi创建Windows快捷方式

如何在Delphi 10.1 Berlin中安全地访问“共享文件夹”?

在 Delphi 7 中更改字符