这个例子昨天正好看了,话说那本书的例子都很不错~
& H. h; D* |3 s; g不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。0 l; ]: h/ N- F( `9 P3 L$ B
is7 z( z2 N( }8 V6 C
i,no,m:integer; --定义整型9 l% M+ [" t2 Q% r1 v6 o- p0 Y7 e, H
Buf:object; --定义object& w* m# t* Y0 z0 V
do
. `5 v& ?+ b+ } m:=0;
! L/ _& Q9 b: |/ d: I no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
; x) B, J1 A/ G2 O, d" W for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
( p7 h* T L3 Y% D8 B. P0 c, U( N if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
B' I/ k& `! V' U @._From:=PartsTable[5,i]; 6 Z( a8 n9 d, D3 C
@._To:=PartsTable[6,i];) U; {( Q' J! `% U
if no=PartsNo+PartsTable[2,i] then 5 }# n- K' J' i2 M
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)$ Z4 Y, S' e! c* d
; G$ o# g1 L4 [: K) H
end;$ w8 w4 L1 G; r% k4 B
i:=PartsTable.YDim+1;
3 ?7 w5 B4 O: c, V# J end;/ B- W* @7 u) h' G4 ?
m:=m+PartsTable[2,i];2 y, l9 B/ s" m
next;
* E; @. v# R. D' i, T - y$ ]8 W5 f, k3 h+ x1 ?6 y
Buf:=str_to_obj(sprint("BF",@._From));( l* h* @! q; z. U
@.move(Buf);' _! F6 c ]! E9 {! P7 m
end; |