这个例子昨天正好看了,话说那本书的例子都很不错~
5 D4 x% |2 j" w4 Z2 L4 o+ c不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
; x" Y) j+ \0 j) Ois+ ^; h6 l% }# f, ]# q! H/ K2 P
i,no,m:integer; --定义整型
: I9 t8 v/ k2 B' ?/ ~ [" U Buf:object; --定义object6 G0 r$ K& u( u; l# Q# C
do3 Q: m7 Y* ?* Y3 |$ Z
m:=0;1 d. M" D8 b8 U- f" e& E/ k
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)& I p5 `1 z, L% B, `: c6 ?
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行& C3 w/ S0 o. f) P
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
+ w+ U9 a, } ^5 n @._From:=PartsTable[5,i];
7 c, }2 ?9 b) W0 u# q6 v @._To:=PartsTable[6,i];( Z, c- W& e4 I( o) y
if no=PartsNo+PartsTable[2,i] then ! o' q4 E, k6 i4 w
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)/ i3 X2 d4 [1 U. B- l) y/ u
" a2 n y: _# E3 X; s4 l- ?
end;
$ f; y v3 G! m) d2 t! I i:=PartsTable.YDim+1;
! O* ^3 v/ \( i) t0 T5 ^8 d( I) x end;% r0 M# G) ~! O+ T
m:=m+PartsTable[2,i];
& o' U3 ]. y" x- j next;, z5 |3 W: @! o* V i9 s
; P: x7 _* n q8 }3 Q Buf:=str_to_obj(sprint("BF",@._From));
" _* c2 W/ v+ s- A/ `# ~3 u6 H" D @.move(Buf);
* T6 B- k$ [3 K, N6 ?+ Dend; |