不知道大家遇到过在Delphi中一些语句不能编译,而且一个IF判断如if ptyf<zhye1 then本来ptyf是大于zhye1的但是delphi仍然要执行if ptyf<zhye1 then后面的语句。

解决方案 »

  1.   

    这是因为你的Delphi的某些文件(一般情况是bpl)出现了问题,编译器不能正常工作,你可以关闭delphi,重新打开,编译与你项目相关的包就能解决问题。
      

  2.   

    我重新打开了的啊 ,不会是DELPHI有问题吧,而且我那里只是些判断语句哦
      

  3.   

     如果使用BPL,會由於BPL編譯版本的不同,代碼不執行。 DELPHI2009前的部分如果在代碼有一些中文注釋或從WORD等帶格式的文檔COPY代碼過來,可能出現一些看不到的亂碼倒致編譯器出錯!!!
      

  4.   

    这是我写的一个函数,函数值传进来都没有错,但是IF判断时本来200<50是不成立的,但它仍然要执行下面的代码。我没注释,也全是我手写的。
    procedure TJsGs.HDMZJS(rylx, zhzt: string; hcbl, tcjeq, zhye1, ptyf, mxbyf,
      ylzf: real; var tczf, zhye, xjzf, zhzf: real);
    var
       tmpmxb1,tmpmxb2:real;
       mxtcje,mxhcbl,mzmxbyf:real;
       mzylzf,mxptyf,mxzhye:real;
    begin
       tmpmxb1:=0;tmpmxb2:=0;
       mzmxbyf:=mxbyf;mxhcbl:=hcbl;
       mxtcje:=tcjeq;mxzhye:=zhye1;
       mxptyf:=ptyf; mzylzf:=ylzf;
       if (rylx='2') then
       begin
           if mxzhye=0 then
           begin
               tmpmxb1:=mzmxbyf*(1-mxhcbl/100);
               if tmpmxb1<mxtcje then
               begin
                   zhzf:=0;
                   tczf:=tmpmxb1;
                   zhye:=0;
                   xjzf:=mzmxbyf*(mxhcbl/100)+mxptyf;
               end
               else
               begin
                   tczf:=mxtcje;
                   zhzf:=0;
                   zhye:=0;
                   xjzf:=mzmxbyf*(mxhcbl/100)+(tmpmxb1-mxtcje)+mxptyf;
               end;
           end
           else
           begin
               if mxptyf<mxzhye then
               begin
                   if (mxzhye-mxptyf)<mxbyf then
                   begin
                       tmpmxb2:=(mzmxbyf-(mxzhye-mxptyf))*(1-mxhcbl/100);
                       if tmpmxb2<mxtcje then
                       begin
                           tczf:=tmpmxb2;
                           zhzf:=mxzhye;
                           zhye:=0;
                           xjzf:=(mzmxbyf-(mxzhye-mxptyf))*(mxhcbl/100);
                       end而且,其中有些代码不能编译???