这个例子昨天正好看了,话说那本书的例子都很不错~( O: D4 k; d- G/ F/ N1 K
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。2 Y# e# U# o; P/ u
is' O( u" I9 v! J
i,no,m:integer; --定义整型; z6 M, n- z1 L$ V3 a9 ~( r
Buf:object; --定义object! R5 K+ C* w1 e3 y7 c
do
, Z# g/ U/ X( Q' U" M m:=0;+ D. s4 x0 m7 b3 x. e5 ~, `
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外), e- V" ]1 [$ R9 u
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
$ l" A5 p$ m! C3 D0 ? l! U# W3 E& w if PartsNo=m and no<=PartsNo+PartsTable[2,i] then ( t( d' q+ T" y/ F% G6 J4 O) [6 c
@._From:=PartsTable[5,i];
, u7 Q+ J( J" o/ [- r @._To:=PartsTable[6,i];
+ u* F" J# x& u' S1 x8 x5 w: |+ k if no=PartsNo+PartsTable[2,i] then 1 Y! s! W1 Q$ B O: A
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)7 V. P n7 g. x% r3 l
& q3 F9 m/ l% P1 s- ^ I, q end;
. Y7 @8 d1 g+ b# b- r i:=PartsTable.YDim+1;. P0 R. n0 w& s
end;, K7 p1 G# W9 W A! N
m:=m+PartsTable[2,i];
4 e' S% K4 K5 e next;3 d8 e, i) Y C
( z$ ^4 p2 k* P6 m! o' B$ m Buf:=str_to_obj(sprint("BF",@._From));
?/ H$ `$ {! q9 F2 I @.move(Buf);; J+ M. o) U5 c, C8 `0 s
end; |