我在写delphi程序的时候出了这个错误“too many local constants.use shorter procdures”上面说procdure内容太长,要短一下,我想问一下,这个问题怎么解决一下,我写的程序里面procdure的的内容是一定要有那么长的,谢谢。

解决方案 »

  1.   

    我这个程序大体是上这样的if a=xxx then edit1.text:='yyy';
    if a=bbb then edit1.text:='ccc';
    if a=eee then edit1.text:='fff';
    if a=ggg then edit1.text:='kkk';
    .
    .
    .
    .
    .
    .
    if a=abc then edit1.text:='bcd';
    我想问一下,这个怎么分成子过程?
      

  2.   

    既然都是针对 a 作判断,为什么不用case...of呢?楼主贴出的代码中用a与其他变量相比?这么多变量?天哪,这也太BT了吧
    我想那些是不是应该要加引号,是字符串呀?
    要想分成小过程,也很简单呀(假定是字符串):procedure CaseA(a: string): string;
    begin
      case a of
      'xxx': Result := 'yyy';
      'bbb': Result := 'ccc';
      ...{共有200行}
      'abc': Result := 'bcd';
      else
        Result := CaseB(a);
      end;
    end;procedure CaseB(a: string): string;
    begin
      case a of
      'ttt': Result := 'rrr';
      'rrr': Result := 'ddd';
      ...{共有200行}
      'sdf': Result := 'dfg';
      else
        Result := CaseX(a);
      end;
    end;procedure CaseX(a: string): string;
    begin
      ...{省略啦,原理相同,直到代码不多不需再调用子过程为止}
    end;
      

  3.   

    晕,犯了个严重错误,那个应该是function, 而不是procedure, 巨汗!在你主过程中只需要调用 edit1.text := CaseA(a); 就行了。
      

  4.   

    出现这个错误应该是你的程序有误,或不规范,跟procedure的大小关系不大。