这个例子昨天正好看了,话说那本书的例子都很不错~
3 `. T( X8 \( `* [不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
8 ~- H8 i/ ^5 H9 A. B- ?( ais1 l; J# D$ w4 V: r; S# N! @$ C& P
i,no,m:integer; --定义整型! c9 |* Q+ ~7 A8 i, n
Buf:object; --定义object7 A, s) O2 E7 S) s* o* D6 \
do
* v( m! r* S. v+ G) g! D m:=0;$ m: i! S! X2 z+ k5 ^
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外): Q+ @2 P: J- \; i2 [
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行8 B/ n& J6 W3 C/ F+ q& H( L
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then ! e) S. \$ N6 h$ `$ a! q
@._From:=PartsTable[5,i];
* j4 U8 G( h, _4 C! w @._To:=PartsTable[6,i];$ z b1 |$ Y7 ]. f( I
if no=PartsNo+PartsTable[2,i] then 9 w n7 @$ ]7 P, |' d$ Z& ~
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去) m5 l! s, L$ Y% x8 |
& i* U0 x3 y0 R w
end;3 n6 Y4 @ c }- W$ u6 {# w
i:=PartsTable.YDim+1; [3 f: D: R8 ?* i* m
end;
; S* i% T7 q) g: n0 e6 m m:=m+PartsTable[2,i];
5 A9 y+ v9 [! Y next;) G8 b4 o- a* K6 {, U: `, L! j
5 m( N4 X, o, Q Buf:=str_to_obj(sprint("BF",@._From));9 ^/ m6 T* P, i# ~; X M" M
@.move(Buf);6 l4 O6 o U& R/ H) f
end; |