|
function EExecP4_1(in_prm1,in_prm2: TObj; var out_prm1,out_prm2: TObj;
Att_1,Att_2: TAtt; Sg1,Sg2: integer; OW1,OW2: pointer): boolean;
var
d2, o1, p2, p3, p4, X, Y: TObj;
SpisG3, SpisGA: TNewList;
Success: boolean;
const
Att_Y: TAtt = ( PT:0; LT:0; LV:0; HT:7; Width:1; Chk:1; Cmp:0; Ilb:0; Comment:NIL; Layers:NIL);
Att_X: TAtt = ( PT:0; LT:0; LV:0; HT:7; Width:1; Chk:1; Cmp:0; Ilb:0; Comment:NIL; Layers:NIL);
Att_p2: TAtt = ( PT:0; LT:0; LV:0; HT:7; Width:1; Chk:1; Cmp:0; Ilb:0; Comment:NIL; Layers:NIL);
Att_d2: TAtt = ( PT:0; LT:0; LV:0; HT:7; Width:1; Chk:1; Cmp:0; Ilb:0; Comment:NIL; Layers:NIL);
Att_p3: TAtt = ( PT:0; LT:0; LV:0; HT:7; Width:1; Chk:1; Cmp:0; Ilb:0; Comment:NIL; Layers:NIL);
Att_p4: TAtt = ( PT:0; LT:0; LV:0; HT:7; Width:1; Chk:1; Cmp:0; Ilb:0; Comment:NIL; Layers:NIL);
Att_o1: TAtt = ( PT:0; LT:0; LV:0; HT:7; Width:1; Chk:1; Cmp:0; Ilb:0; Comment:NIL; Layers:NIL);
begin
d2:=nil;
o1:=nil;
p2:=nil;
p3:=nil;
p4:=nil;
X:=nil;
Y:=nil;
Result:=TRUE;
Y:=in_Prm1.CreateCopy(NIL);
Y.OAtt:=in_Prm1.OAtt;
X:=in_Prm2.CreateCopy(NIL);
X.OAtt:=in_Prm2.OAtt;
repeat
Success:=FALSE;
if not Assigned(p2) then
Success:=EExecPA(Y,p2,Att_p2,1*Sg1,NIL) or Success;
if not Assigned(d2) then
Success:=EExecDN(X,p2,d2,Att_d2,1*Sg2,1,NIL) or Success;
if not Assigned(p3) and not Assigned(p4) then
Success:=EExecP3(d2,Y,p3,p4,Att_p3,Att_p4,1,1*Sg1,OW1,NIL) or Success;
if not Assigned(o1) then
Success:=EExecO0(p3,X,o1,Att_o1,1,1*Sg2,NIL) or Success;
until not Success;
out_prm1:=o1.CreateCopy(OW1);
out_prm1.OAtt:=att_1;
out_prm2:=p3.CreateCopy(OW2);
out_prm2.OAtt:=att_2;
MassFree([d2,o1,p2,p3,p4,X,Y]);
end; // EExecP4_1 |