这个例子昨天正好看了,话说那本书的例子都很不错~- ~# E7 @& B* V" T, R& e
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
3 e5 D, e5 ]. ^6 xis
! z& p' j8 o% f1 e: ^6 Q8 d& ^ i,no,m:integer; --定义整型4 ~- z' [9 ]$ Z1 t" }
Buf:object; --定义object/ }) j: k% v- j! L
do
. {1 o, e+ x# U* Y9 N. R1 U6 Z m:=0;
* n, d) x$ H+ z% `- d) y no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)8 s2 d& C* N3 O/ b% q: u
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行1 N ]- F! ?/ T6 X
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
' R3 N2 h, L0 O( X @._From:=PartsTable[5,i]; 6 }# w" g0 `# V2 J* U* T: ]: c$ l
@._To:=PartsTable[6,i];- h! Q1 ?: V: b k# G3 f3 h
if no=PartsNo+PartsTable[2,i] then
0 f- q' e& O8 ~2 e PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)4 T1 _4 Z1 b- l) x( o5 j
- X8 t9 H r0 R- Z. L& v end;
' v0 i& `0 n6 E$ @$ S" _) d i:=PartsTable.YDim+1;0 V* a0 J; c$ U
end;
& |7 m) U3 @* ~% G$ q4 o m:=m+PartsTable[2,i];
6 }- F, f, _$ {# W next;
! k4 p4 U% f/ {& C
+ h7 r$ n# k3 [+ C$ z) n, E Buf:=str_to_obj(sprint("BF",@._From));* j6 T# z. z% r
@.move(Buf);
( v1 u9 O% J) P0 \end; |