这个例子昨天正好看了,话说那本书的例子都很不错~
; t, e/ y) K. S" O; Y9 o不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。% O$ G3 x4 G% J
is
. [2 S ~, w; v7 ]- D6 H# I i,no,m:integer; --定义整型
3 f U, B' d @& o0 j" \% _* m* t Buf:object; --定义object
/ R7 }8 a: X, v8 K& cdo
/ @! W% n% e- ]9 i m:=0;
4 }/ c7 U# P7 @. ], z3 } no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
2 l! G2 |* W8 I, @* R* g& E- Q for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行% o% E# c* D( | g: [) Q2 C( ]
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
( w; d* ?/ O! ?; a$ y @._From:=PartsTable[5,i]; 3 g: G( H/ l% X, |- g' o5 D
@._To:=PartsTable[6,i];9 _' o% `: I% G1 M
if no=PartsNo+PartsTable[2,i] then 0 M6 C1 i# ~1 w9 b' u/ B% w$ J: e6 G
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
: E3 }3 N2 d5 V& x0 y1 Q; `0 O$ V# W6 S( r" Y' S& x. J
end;
8 V- }( x% N0 `$ h: w; ^5 h; N i:=PartsTable.YDim+1;0 R M( y0 c3 N1 P& {
end;# t# R; {! c4 ~! L# ^6 L: S
m:=m+PartsTable[2,i];* o: e8 E/ Q( ?/ c/ }& b% d7 K
next;
3 F, X/ W! P& `
' A: w; {8 t" g- H( }% H& d$ o Buf:=str_to_obj(sprint("BF",@._From));
" {5 v, I# ^5 O! k# e$ q% D @.move(Buf);
: q6 k# X5 Y w" [end; |