关于类中传递数组脚标"I"(MyAry[I])的问题: ( 积分: 50 )

  • 主题发起人 主题发起人 wxc211
  • 开始时间 开始时间
W

wxc211

Unregistered / Unconfirmed
GUEST, unregistred user!
关于类中传递数组脚标"I"(MyAry)的问题:
定义了一个关于数组的类,其中有一个Value的属性,和一个SetValue方法:
var
MyAry:TArray;
begin
MyAry:=TArray.Create(5);
MyAry.Value:=123; //这里不知怎么写出正确的代码,将I传入类中,请求帮助,谢谢
end;






//下面是类的定义:
type
TArray=class
private
Ary:array of String;
procedure SetValue(const Value: String);
public
property Value:String read Ary write SetValue;
constructor Create(Length:Integer);
end;

implementation

constructor TArray.Create(const Length: Integer);
begin
inherited Create;
System.SetLength(Ary,Length);
end;


procedure TArray.SetValue(const Value: String);
begin
//这里不知如何写
end;
 
关于类中传递数组脚标"I"(MyAry)的问题:
定义了一个关于数组的类,其中有一个Value的属性,和一个SetValue方法:
var
MyAry:TArray;
begin
MyAry:=TArray.Create(5);
MyAry.Value:=123; //这里不知怎么写出正确的代码,将I传入类中,请求帮助,谢谢
end;






//下面是类的定义:
type
TArray=class
private
Ary:array of String;
procedure SetValue(const Value: String);
public
property Value:String read Ary write SetValue;
constructor Create(Length:Integer);
end;

implementation

constructor TArray.Create(const Length: Integer);
begin
inherited Create;
System.SetLength(Ary,Length);
end;


procedure TArray.SetValue(const Value: String);
begin
//这里不知如何写
end;
 
type
TArray=class
private
Ary:array of String;
procedure SetValue(x: Integer; const Value: String);
function GetValue(x: Integer): string;
public
constructor Create(length: integer);
property Value[I: Integer]:String read GetValue write SetValue; default;
end;

implementation

{ TArray }

constructor TArray.Create(length: integer);
begin
SetLength(ary, length);
end;

function TArray.GetValue(x: Integer): string;
begin
Result := ary[x];
end;

procedure TArray.SetValue(x: Integer; const Value: String);
begin
ary[x] := value;
end;
 
[red]private[/red]
Ary:array of String;
procedure SetValue(x: Integer; const Value: String);
function GetValue(x: Integer): string;

-_____-|||
 
TO moshengren
//这里出错
procedure TForm1.Button1Click(Sender: TObject);
var
MyAry:TArray;
begin
MyAry:=TArray.Create(2);
MyAry.Value[2]:='2';
Caption:=MyAry.Value[2];
MyAry.Free;
end;
 
下标应该从 0 开始吧?
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
673
import
I
I
回复
0
查看
777
import
I
后退
顶部