这个例子昨天正好看了,话说那本书的例子都很不错~
" `3 ~; w' q: L5 B不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。, }+ p% L% Z6 r' l7 X# }3 @
is. Z# v1 j3 d O. ^
i,no,m:integer; --定义整型
2 O) Z4 \) f2 W/ N3 X+ h3 T ]6 W Buf:object; --定义object6 T4 T# s* ^0 J3 p
do: v( S' ?) K: f; F
m:=0;+ r) X6 b; B0 X' d6 E! z
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)/ b, i' f9 q5 B9 s8 V
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
0 f/ x- e9 x T4 F8 ]- X3 S0 s if PartsNo=m and no<=PartsNo+PartsTable[2,i] then 8 o5 |( }) _( C% c; @
@._From:=PartsTable[5,i];
6 r7 V5 Q& r+ g2 ]# j @._To:=PartsTable[6,i];
' S! _1 z2 {6 ^# b6 Q$ K if no=PartsNo+PartsTable[2,i] then
8 X3 I L! F7 Z E# t1 } a PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)! S. ]2 ^ L/ b
9 a0 A- d9 k& }7 X" X6 H, P
end;, w, P$ j4 D2 ~. e0 X
i:=PartsTable.YDim+1;
9 Q6 K/ G1 C1 w | U end;
) ^0 [. V% c* d" q- U) P) ` m:=m+PartsTable[2,i];
. C3 y- p) Z$ l6 A6 T$ E next;
% A% ^4 ~9 B& `, i) ?$ ]3 G, B, t2 v
& Q) y, k& W5 D7 u! `: v/ Z, Q Buf:=str_to_obj(sprint("BF",@._From));( H; X2 z, Q D8 G3 _2 h. J- A+ {
@.move(Buf);
" e! x0 B6 y4 I' g+ A! Fend; |