类中数组属性的问题(50分)

  • 主题发起人 主题发起人 邹光先
  • 开始时间 开始时间

邹光先

Unregistered / Unconfirmed
GUEST, unregistred user!
定义了一个数组型的属性后,怎么实现read属性write属性?
我知道,对于一般属性来说,通常先定义一个私有属性,然后用类似这样的语句提供对外
的访问接口:
private
FHeading:THeading

public
property Heading:THeading read FHeading write FHeading



对于数组属性,是不是也要定义一个与之相对应的私有型数据,然后操纵私有数据来read
和write?
谢谢!!
 
TRWBFRec=Class
private
function GetBFRec(index: integer):integer;
procedure SetBFRec(index: integer
value:integer);
public
property BFRec[index:integer]:Integer Read GetBFRec Write SetBFRec;
end;
实现GetBfRec,SetBfRec即可

 
我知道帮助文件上也是大概这么说的。可是,这个函数怎么写?要用到一个私有数据来保存值么?谢谢!
 
现在我急用,请gg们帮忙!!^_^
 
TRWBFRec=Class
private
FBFRec:array[0..1000] of Integer;
function GetBFRec(index: integer):integer;
procedure SetBFRec(index: integer
value:integer);
public
property BFRec[index:integer]:Integer Read GetBFRec Write SetBFRec;
end;
procedure SetBFRec(Index:Integer
Value:Integer);
begin
if (Index<0) or (Index>1000) then raise Excepton.Create('Out of Bounds.');
FBFRec[Index]:=Value;
end;

function SetBFRec(Index:Integer):Integer;
begin
if (Index<0) or (Index>1000) then raise Excepton.Create('Out of Bounds.');
result:=FBFRec[Index];
end;
 
需要定义私有数据来保存值
TRWBFRec=Class
private
FBfRec:array[0..10] of integer

function GetBFRec(index: integer):integer;
procedure SetBFRec(index: integer
value:integer);
public
property BFRec[index:integer]:Integer Read GetBFRec Write SetBFRec;
end;



function TRWBFRec.GetBFRec(index: integer): integer;
begin
result:=fbfrec[index];
end;

procedure TRWBFRec.SetBFRec(index, value: integer);
begin
FBFRec[Index]:=Value;
end;


procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
begin
tt:=TRWBFRec.Create;
for i:=0 to 10 do
tt.BFRec:=i;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
showmessage(inttostr(tt.bfrec[3]));
end;


 
谢谢!!
 
后退
顶部