留意DELPHI的命名规则

Author: 朱东明 Date: 1999年 第44期 13版


  初学DELPHI的人,对自己随手编的程序,函数,过程所起的名字不会太在意。但可要注意,你随意起的名字,有时会给你带来意想不到的麻烦。举例如下:新建一个FORM,加上一个EDIT1,清除其内容,再加上一个LABEL1和BUTTON1。
  BUTTON1按钮代码为
  procedure TForm1.Button1Click(Sender: TObject);
  begin
  label1.caption:=inttostr(sqr(strtoint(edit1.text)));//注意函数SQR
  end;
  执行,在EDIT中输入一个数字,LABEL中就显示其平方值,一切正常。好,保存为SQR.PAS和SS.DPR。再执行,就会有错误信息跳出
  “[Error] sqr.pas(30): '.' expected but '(' found”
  “[Fatal Error] ss.dpr(5): Could not compile used unit 'sqr.pas'”
  原来程序在执行SQR的时候,没有调用函数SQR,而是找到了SQR.PAS。把程序另存为NOTSQR.PAS,重新执行,则恢复正常。所以程序,函数,过程不要重名,尤其是在程序中用到的。同时要注意自定义函数优先级大于保留函数,在上例中若自定义一个叫SQR的函数。
  function sqr(input:integer):integer;
   begin
   sqr:=input+1;
   end;
  执行,若在EDIT中输入2,按BUTTON,在LABEL中则会显示3,而不是4。