type
//非引用,可直接賦值,record不可繼承,object可繼承
trecord = record
const
//定義了常量後影響ctrl+shift+c自動完成
ta: integer = 0;
length: integer = 3;
private
fa: integer;
fb: integer;
procedure seta(const value: integer);
class var
fd: tlist;
public
constructor create(a, b: integer);//建構函式必須至少有乙個引數,析構函式需要自定義
procedure add(v: integer);
property a: integer read fa write seta;
end;
//在僅有常量和類變數時用做單例模式應該不錯
tclass = class sealed
const
a: byte = 100;//類常量,可以不定義型別
b: boolean = true;//類常量,也可以定義型別
class var
//類變數,相當於靜態變數,訪問時 類名.變數名
ft: integer;
//strict
private//嚴格的oo,即在同乙個unit中也不能訪問私有和保護成員了
fp: integer;
class procedure sett(const value: integer); static;
procedure setpt(const value: integer);
public
constructor create(c: integer);//類構造函式引數可有可無
//下面是類屬性,只能讀寫類變數,讀寫方法必須是類靜態方法,即前面加class,後面加static
class property vt: integer read ft write sett;
//注:使用類屬性時最好不使用一般屬性,否則無法ctrl+shift+c自動完成
property pt: integer read fp write setpt;//一般屬性,只能讀一般成員
end;
測試**:
procedure tform1.btn1click(sender: tobject);
var o: ^trecord;
c: trecord;
好: string;//中文變更名
tl: tlist;
p: pointer;
t: tclass;
begin
o := nil;
new(o);
o.a := 100;
trecord.fd := tlist.create;
好 := '你妹';
caption := format('sizeof:%d, length: %d, o^.a: %d 好%s', [sizeof(trecord), o.length, o.a, 好]);
dispose(o);
c.a := 100;
tl := tlist.create;
tl.add(pointer(100));
tl.add(pointer(200));
tl.add(pointer(300));
tl.add(pointer(400));
//for in 支援陣列和tlist(含getenumerator)
for p in tl do
begin
mmo1.lines.add(inttohex(integer(p), 8));
end;
t := tclass.create;//(5);
t.vt := 8;
dec(t.ft);
inc(t.vt);
t.pt := 1;
//inc(t.pt);
t.pt := t.pt - 1;
if tclass.b then
mmo1.lines.add(format('%d %d %d', [tclass.a, tclass.vt, t.vt]));
end;
constructor trecord.create(a, b: integer);
begin
fa := a;
fb := b;
end;
procedure trecord.seta(const value: integer);
begin
end;
procedure trecord.add(v: integer);
begin
end;
constructor tclass.create(c: integer);
begin
ft := c;
end;
class procedure tclass.sett(const value: integer);
begin
ft := ft + value;
end;
procedure tclass.setpt(const value: integer);
begin
ft := value;
end;
Delphi2006試用手記
今天旁邊宿舍的傢伙終於給我吧borland studio 2006整套下下來了 5cd哪 足足刻了我5張盤 不過 個人感覺這個產品應該是borland的終結產品了 刻下來以後紀念用也行啊 花了10分鐘左右裝上了borland studio 2006 裝了win32版和.net版 其他產品還有c bu...
Delphi2009新特性(1) Exit方法
在函式中,使用result作為返回變數,必須要等所有 執行完成 function tform1.abc x,y integer integer begin if y 0 then result 0 else result x y end delphi 2009,新增了exit方法,指定返回值,同時退...
c 11語言新特性
模板的閉符之間不需要空格 vector 等同於 vector nullptr取代0或者null 以auto完成型別自動推導 一致性初始化與初值列 使用大括號進行初始化動作,如 int values vectorv 初值列如 int j j is initialized by 0 int p q is...