这个例子昨天正好看了,话说那本书的例子都很不错~
/ @ z) Z- y- R: \% `$ i不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。8 l/ V( e q. p: b; J0 `, }+ s/ V7 ?
is
' t( w0 N) X' R# K+ ^ i,no,m:integer; --定义整型7 \! _) w; \- Y* q# o0 j6 {
Buf:object; --定义object- c, n* N5 o" `
do! h! p. L4 L: X7 D' b! ^ u
m:=0;" \' V, [; `4 c8 x8 [
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
; A" ~- K8 \8 M7 ^, }/ k7 C9 A for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行2 t& x7 P* o1 `& R! D
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
% C% u3 q- ]+ K @._From:=PartsTable[5,i];
| C/ J, ^/ Q9 f0 P @._To:=PartsTable[6,i];! E$ m) p( `4 J0 o8 _4 I. G
if no=PartsNo+PartsTable[2,i] then
3 g1 g% Y, d* L' L PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)7 D2 d$ C1 b7 h, ]6 v5 i
6 z0 \% ^) S, \0 i end;, B+ A( f' J, z/ {; A" U0 Q6 T6 d: k
i:=PartsTable.YDim+1;0 {% A) ^2 R+ t& ~& |$ P+ j
end;- @' h1 v: @0 c1 u
m:=m+PartsTable[2,i];: H9 T( k: Y- v- v6 `
next;
; x% Z! R2 N% x5 f: [
8 ]# ?4 a- ^2 j5 F3 W9 `* B- @: ] Buf:=str_to_obj(sprint("BF",@._From));
7 e: s0 o9 O* c0 a @.move(Buf);
8 Z% C5 h4 x9 R( W7 v9 F8 d3 ?end; |