这个例子昨天正好看了,话说那本书的例子都很不错~
0 P$ y8 I G- Q* S# }不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。. A. [" Z! }* g
is
6 b! {* y9 p! c' u9 z5 }* u9 ~& r i,no,m:integer; --定义整型
. o( ]' v4 ~# t% I8 Z# }; E Buf:object; --定义object1 B4 B4 m( u- z4 z& @
do
+ h( K* c" X" g2 B m:=0; \, m x6 P+ Z
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外), {0 u7 }9 |7 }1 l& g
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行4 S8 B- |5 B/ d% y* |
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
. B5 ?1 S# v$ [8 b i# _* k, Y @._From:=PartsTable[5,i];
' G9 Y0 V0 [ J$ }( c @._To:=PartsTable[6,i];
7 v3 ]( w( J6 Z+ n0 p/ g if no=PartsNo+PartsTable[2,i] then * S0 `4 n% k( }9 T1 Y) Y. f# r
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
0 g) w5 p9 i8 H( j9 e; R% N; r( N3 N* R# Y2 g, v
end;, ]% |, Y% o2 a; r! {; {4 E
i:=PartsTable.YDim+1;
. d: d% C5 b2 `" O end;
3 p& {- F$ Y& p; F m:=m+PartsTable[2,i];
" y9 U! P& z! D3 R# C4 a: R next;3 L* [- N/ O3 d" o, u4 [
8 v) Z c0 s1 O
Buf:=str_to_obj(sprint("BF",@._From));
9 m6 P# e/ W2 N8 u$ ~3 j6 D" V @.move(Buf);5 l7 i+ m \( {8 [9 R
end; |