From 2a1cab45b99dcb0b07bffe687550e2334614dcec Mon Sep 17 00:00:00 2001 From: JianjunLiu Date: Fri, 28 Jul 2023 15:44:33 +0800 Subject: [PATCH] Update utslvclauxiliary.tsf MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 更新数组对象 --- funcext/tvclib/utslvclauxiliary.tsf | 36 +++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/funcext/tvclib/utslvclauxiliary.tsf b/funcext/tvclib/utslvclauxiliary.tsf index 16e0bad..fbe392c 100644 --- a/funcext/tvclib/utslvclauxiliary.tsf +++ b/funcext/tvclib/utslvclauxiliary.tsf @@ -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 id and ifarray(d) then