这个例子昨天正好看了,话说那本书的例子都很不错~
, t. r% s- Z5 w; G不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
# r' s7 {# j0 kis( }8 `* m1 u( J4 B$ Z1 v
i,no,m:integer; --定义整型6 n$ Y3 C% Z1 B$ P0 I; y
Buf:object; --定义object
4 m; c$ D. G, @do
2 n+ T% D6 u6 _1 S2 v: o! { r m:=0;' s; u. x3 M& v
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外). L' b, y$ ~: z: X- U* r
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
& H* R9 _. u! g% X if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
: i/ K& Z: f. d @._From:=PartsTable[5,i];
V* l* j& K2 v2 R4 N8 H @._To:=PartsTable[6,i];
: J3 r% w% j7 Z, ~ [: @; I/ v if no=PartsNo+PartsTable[2,i] then
1 P9 F1 k3 w# t% w/ v/ ^, Q. C. [ PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去). T* [7 Y+ [% \- T4 F
/ j& X. g* M4 P" P2 y9 r
end;
+ k3 m) D3 E5 E5 O6 x, y8 J i:=PartsTable.YDim+1;) q ~0 q1 v8 h1 G, L* f3 |
end;9 C& o" S5 _0 H8 o7 y
m:=m+PartsTable[2,i];! s$ L& p j# t) ?' j; B/ Z; ^
next;
- v, @% I5 D% s
. f6 Z3 `# z3 b Buf:=str_to_obj(sprint("BF",@._From));5 U" w( I1 }0 @
@.move(Buf);% B8 W( h- |" E! x% J% V, M) x
end; |