这个例子昨天正好看了,话说那本书的例子都很不错~' R i+ ^0 K$ U$ c
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。) f5 w) r8 B+ d8 _9 n# u6 i
is
" `' N7 Y& b5 w. B1 e+ d8 ^ i,no,m:integer; --定义整型0 M% V+ y( r" u6 q$ B
Buf:object; --定义object- U6 m5 h- \3 U6 l) A
do
, U$ x6 F) A/ [6 ]* }, M m:=0;
3 r/ }" j% D3 |* M( L no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
( |2 C1 a3 m. U3 r& h$ P& J! u3 F3 x for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
" j6 v' d* l% s' R$ K1 e if PartsNo=m and no<=PartsNo+PartsTable[2,i] then ! [% S7 b# C4 U: R7 ~9 `
@._From:=PartsTable[5,i]; 1 z, M" G* Y# N7 J; Z, b+ ^6 j
@._To:=PartsTable[6,i];
' q, v/ B7 n$ H( ]! o, m if no=PartsNo+PartsTable[2,i] then ' ]* c/ e" [; m- H3 z& e
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
, n0 H" M( W* s0 [# M \/ m
. D8 V5 r* z8 K- Q- R3 }6 g end;9 v" B# |2 J: K$ ?7 m5 ?
i:=PartsTable.YDim+1;% ?8 W3 p; u9 }2 p1 o( R
end;
9 i# ^+ l6 {3 p( Y& K: X m:=m+PartsTable[2,i]; l, h, T3 w% `5 ?
next;
! a* l+ ]9 H% r3 |: E) g5 |
. a% [3 H% m( h Buf:=str_to_obj(sprint("BF",@._From));2 n" B5 z; X/ j
@.move(Buf);8 C0 h, r+ C$ [, V
end; |