parent
f792da4703
commit
2a1cab45b9
|
|
@ -1145,6 +1145,14 @@ type trefarray = class() //
|
|||
if not ifarray(idxs) then return nil;
|
||||
if ifarray(FData) then
|
||||
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);
|
||||
end
|
||||
return FData.mgset(idxs,v);
|
||||
|
|
@ -1154,6 +1162,10 @@ type trefarray = class() //
|
|||
if not ifarray(idxs) then return nil;
|
||||
if ifarray(FData) then
|
||||
begin
|
||||
if ifarrayidx(idxs) then
|
||||
begin
|
||||
return eval(&("FData"+formatarrayidx(idxs)));
|
||||
end
|
||||
return magicgetarray(FData,idxs);
|
||||
end
|
||||
return FData.mgget(idxs,v);
|
||||
|
|
@ -1178,7 +1190,31 @@ type trefarray = class() //
|
|||
property data read FData write setdata;
|
||||
private //³ÉÔ±±äÁ¿
|
||||
FData;
|
||||
fsettemp;
|
||||
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);
|
||||
begin
|
||||
if FData<>d and ifarray(d) then
|
||||
|
|
|
|||
Loading…
Reference in New Issue