这个例子昨天正好看了,话说那本书的例子都很不错~
5 U: O& p+ R% ~& H& a不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。3 s* [4 N8 @0 f. ~
is
. @- e2 B2 R3 l( y' T i,no,m:integer; --定义整型
. f. b5 r, Q- l# r, |" H! E Buf:object; --定义object
6 ]8 [1 p* `# d, s( Kdo
! i% G* d: b' r6 s m:=0;( c+ w- r8 U2 M- A) W, w
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外). o+ ~# w6 V0 O; w/ c
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行+ b* h, w& Z' {1 d
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
2 C7 a2 Y; L& g. p; n" z9 ? V @._From:=PartsTable[5,i];
- O5 E4 |5 t1 V4 A1 u @._To:=PartsTable[6,i];7 K7 u$ _( e) O( \7 ~; i
if no=PartsNo+PartsTable[2,i] then / V9 S; s( s2 t6 I/ n% g C
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
O, n$ W+ R; g6 j2 f4 e: N; @8 r: M7 [! v7 m
end;1 E4 X& n; l( r2 z1 Y' w1 k
i:=PartsTable.YDim+1;% x+ I: D! A( M6 e3 ^
end;
1 @7 E/ e) c0 ?$ H m:=m+PartsTable[2,i];$ T/ [3 t) s# G# M5 y$ @' ?" y, \
next;/ j5 p# o3 t- A+ Q& h: H% K+ f# d$ }
6 i0 f& `" F" I# f9 C1 l; Z% M Buf:=str_to_obj(sprint("BF",@._From));4 `3 v" a) G$ K/ y- L
@.move(Buf);
: [6 `$ a \9 [* Yend; |