这个例子昨天正好看了,话说那本书的例子都很不错~
& S4 D/ f4 j) Z+ ?不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
6 ]" u3 d* d5 w+ [is
( O+ [8 ], `' U i,no,m:integer; --定义整型
0 R3 P8 Y, H* V1 | Buf:object; --定义object8 M4 Q$ k) [2 f1 u
do7 H* |3 y9 }. ^6 ]: W, s( M
m:=0;
# L# q4 D9 q+ X$ `) M6 D2 r9 ] no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)% R+ R9 X- W$ `5 S# q- i' E/ m
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
3 L+ k g f" g5 D7 j if PartsNo=m and no<=PartsNo+PartsTable[2,i] then , K! R: h- p5 e$ a+ A
@._From:=PartsTable[5,i]; 1 x$ C0 z& V. j7 |: {, I
@._To:=PartsTable[6,i];8 F7 b# D7 Q; Y2 v+ {% z" g
if no=PartsNo+PartsTable[2,i] then
' L1 } _7 b. @. x9 W$ X; Q* ? PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)7 V) U/ }4 ^1 V4 c
4 A j, `& y+ ?+ \
end;
& F. E$ {9 J9 ` G3 a. w# U/ p& j i:=PartsTable.YDim+1;& [! q4 d1 `6 y
end;
" [/ k+ g& g$ T m:=m+PartsTable[2,i];
& N8 t& {1 {: ? J5 V0 Q7 H' U' { next;. I$ D/ ]1 J+ l
' Q) ]8 G, E% R8 p. I Buf:=str_to_obj(sprint("BF",@._From));
$ I2 Z2 v7 J) m9 |7 s @.move(Buf);% K% P# }* m/ C! N% s
end; |