Update utslvclauxiliary.tsf
更新数组对象
This commit is contained in:
@@ -1145,6 +1145,14 @@ type trefarray = class() //
|
|||||||
if not ifarray(idxs) then return nil;
|
if not ifarray(idxs) then return nil;
|
||||||
if ifarray(FData) then
|
if ifarray(FData) then
|
||||||
begin
|
begin
|
||||||
|
if ifarrayidx(idxs) then
|
||||||
|
begin
|
||||||
|
fsettemp := v;
|
||||||
|
s := "FData"+formatarrayidx(idxs)+":=fsettemp;";
|
||||||
|
r := eval(&(s));
|
||||||
|
fsettemp := nil;
|
||||||
|
return r;
|
||||||
|
end
|
||||||
return magicsetarray(FData, idxs,v);
|
return magicsetarray(FData, idxs,v);
|
||||||
end
|
end
|
||||||
return FData.mgset(idxs,v);
|
return FData.mgset(idxs,v);
|
||||||
@@ -1154,6 +1162,10 @@ type trefarray = class() //
|
|||||||
if not ifarray(idxs) then return nil;
|
if not ifarray(idxs) then return nil;
|
||||||
if ifarray(FData) then
|
if ifarray(FData) then
|
||||||
begin
|
begin
|
||||||
|
if ifarrayidx(idxs) then
|
||||||
|
begin
|
||||||
|
return eval(&("FData"+formatarrayidx(idxs)));
|
||||||
|
end
|
||||||
return magicgetarray(FData,idxs);
|
return magicgetarray(FData,idxs);
|
||||||
end
|
end
|
||||||
return FData.mgget(idxs,v);
|
return FData.mgget(idxs,v);
|
||||||
@@ -1178,7 +1190,31 @@ type trefarray = class() //
|
|||||||
property data read FData write setdata;
|
property data read FData write setdata;
|
||||||
private //成员变量
|
private //成员变量
|
||||||
FData;
|
FData;
|
||||||
|
fsettemp;
|
||||||
private
|
private
|
||||||
|
function ifarrayidx(idx);
|
||||||
|
begin
|
||||||
|
for i,v in idx do
|
||||||
|
begin
|
||||||
|
if ifarray(v) then return true;
|
||||||
|
end
|
||||||
|
end
|
||||||
|
function formatarrayidx(idx);
|
||||||
|
begin
|
||||||
|
r := "[";
|
||||||
|
len := length(idx)-1;
|
||||||
|
for i ,v in idx do
|
||||||
|
begin
|
||||||
|
if ifarray(v) then r+=tostn(v);
|
||||||
|
else r+=tostn(v);
|
||||||
|
if i<len then
|
||||||
|
begin
|
||||||
|
r+=",";
|
||||||
|
end
|
||||||
|
end
|
||||||
|
r+="]";
|
||||||
|
return r;
|
||||||
|
end
|
||||||
function setdata(d);
|
function setdata(d);
|
||||||
begin
|
begin
|
||||||
if FData<>d and ifarray(d) then
|
if FData<>d and ifarray(d) then
|
||||||
|
|||||||
Reference in New Issue
Block a user