function EExecP0(var X,Y: TOChisl; var Out_Prm: TOPoint; Sg1,Sg2: integer):  
                boolean; 
              var A,B: complex; 
      { Kind: TKindPoint; } 
              begin 
       Result:=FALSE; 
       {Out_Prm:=NIL;} 
                   { if ((X is TOChisl) or (X is TOPoint)) and ((Y is TOChisl) or (Y is TOPoint))                 then } 
       begin 
            {if X is TOChisl then} with X.C do Compl(A,Re*Sg1,Im*Sg1); 
            {if Y is TOChisl then} with Y.C do Compl(B,Re*Sg2,Im*Sg2); 
                {          if X is TOPoint then with TOPoint(X).X do Compl(A,Re*Sg1,Im*Sg1); 
            if Y is TOPoint then with TOPoint(Y).Y do Compl(B,Re*Sg2,Im*Sg2);} 
                        {Kind:=tp_fixed;} 
                { 
            if (X is TOChisl) and (Y is TOChisl) then if (TOChisl(X).Kind=tc_Constant)
                or (TOChisl(Y).Kind=tc_Constant)  then Kind:=tp_halfFree; 
            if (X is TOChisl) and (Y is TOChisl) then if (TOChisl(X).Kind=tc_Constant)
                and (TOChisl(Y).Kind=tc_Constant) then Kind:=tp_free; 
                        if (X is TOPoint) and (Y is TOChisl) then if (TOChisl(Y).Kind=tc_Constant)
                then Kind:=tp_halfFree; 
            if (X is TOChisl) and (Y is TOPoint) then if (TOChisl(X).Kind=tc_Constant)
                then Kind:=tp_halfFree; 
   } 
            Out_Prm.X:=A; 
            Out_Prm.Y:=B; 
            Out_Prm.W:=1; 
            { TOPoint.Create(A,B,1,0,Kind,Att,OW);} 
       end 
                {     else 
       begin 
            if Att.Chk=1 then Out_Prm:=TOEmpty.Create([X,Y],OW); 
       end}; 
                   Result:=TRUE; 
                end; // EExecP0  |