这个例子昨天正好看了,话说那本书的例子都很不错~( n1 \* r4 \3 N( k+ @" @ o
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
& F; D; k% ]9 T' dis+ F) f8 Z# Z7 y
i,no,m:integer; --定义整型, _: }! _2 c6 H6 l0 y4 X7 A3 L
Buf:object; --定义object/ i. W+ `/ o/ _8 h& E
do
8 u& s/ `- \2 N5 O m:=0;% `+ n4 s& w& n# X/ J+ g9 B9 f* t
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)) X3 Y8 j8 k5 M" K7 y
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行; f! E) O) G1 ~( z
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
( Q4 x4 ~5 _0 V' c @._From:=PartsTable[5,i]; 5 c l, u* F- S; ^/ P, }) \- {& i5 I
@._To:=PartsTable[6,i];
3 C- I- K N# b3 `, l% I8 K if no=PartsNo+PartsTable[2,i] then 3 Q. w, m# J9 Z5 k) H9 d( F
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
& d5 W6 i, u5 g) _$ U# v) H5 f2 _; \/ z9 \+ |' o7 ?* ^
end;
( A! S! C" w( }/ P/ f+ g i:=PartsTable.YDim+1;
, G# e9 W0 N! P- S( }3 D end;
' [& H/ V; i7 A W" y1 O m:=m+PartsTable[2,i];
/ l2 p! R& h0 A- P5 A: l next;
, u' E& D3 Z0 D7 r3 P* t+ L( Y ; W0 h7 O' `/ B; S; H/ G- s: {% I K$ }
Buf:=str_to_obj(sprint("BF",@._From));- M5 T* Y: S3 g
@.move(Buf);
7 C9 J6 i3 I, \( _end; |