这个例子昨天正好看了,话说那本书的例子都很不错~2 `+ a4 \4 v+ l0 H2 p& n) I
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。% e0 J# y' i% E0 m; R3 _
is/ B) I' Q' ~, U, V. j; j8 `6 R& Q' }
i,no,m:integer; --定义整型* p1 w, J N1 q [! X( q
Buf:object; --定义object
, d3 U% h0 L4 h, w* |6 G% ldo
3 A8 x+ h3 g* n" A# C m:=0;) r9 A% ^0 R V# G
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)% l$ J$ N& L& O9 f% V
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
, S3 x. ]3 R5 G. Z2 [6 B if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
8 W7 b( o W0 x& v& R' L. } @._From:=PartsTable[5,i];
- P0 T2 H7 Q+ o, Z* L' g @._To:=PartsTable[6,i];8 ^! B" w s3 F
if no=PartsNo+PartsTable[2,i] then 0 I7 \1 v" z8 J T
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
4 J* V$ p% i9 l1 p8 J
: i# K# t. @# p8 _# L- r0 p end;
i) Z0 M1 M' o& o i:=PartsTable.YDim+1;
% X; R: \1 Z' L9 M6 m end;4 [# r! B" Z+ j; ^* L+ S
m:=m+PartsTable[2,i];+ u& V- k- Z- g7 ~
next;
2 F* q# x3 s9 x( U' ]
9 t& U2 Q+ u4 k1 t* D: I4 y Buf:=str_to_obj(sprint("BF",@._From));
4 R& h6 p7 u' U3 v @.move(Buf);6 Z* _' g0 ]' s
end; |