主表单delphi上的未声明标识符

Gab*_*Gab 1 delphi delphi-2010

我在我创建的名为submit的程序中得到了"Undeclared identifier".

procedure submit;
begin
if ebMain.Text='exit' then
fmMain.Close;
end;
Run Code Online (Sandbox Code Playgroud)

真的很简单.编译器告诉我ebMain是未声明的.我可以通过添加"fmMain"来解决这个问题.在它前面,但我从来没有在delphi 7中这样做.编辑框(ebMain)在主窗体上(fmMain).过程标题位于"使用"下方.怎么了?

Rem*_*eau 6

submit()不是你TfrmMain班级的成员,所以它不知道是什么ebMain.你需要:

1)成为submit()表单类的成员(无论如何你都应该这样做,因为它所做的只是访问成员TfrmMain):

procedure TfrmMain.submit; 
begin 
  if ebMain.Text='exit' then 
    Close; 
end; 

procedure submit; 
begin 
  frmMain.submit;
end; 
Run Code Online (Sandbox Code Playgroud)

2)前缀ebMain与表单的全局frmMain变量(就像你已经在做的那样Close()):

procedure submit; 
begin 
  if frmMain.ebMain.Text='exit' then 
    fmMain.Close; 
end; 
Run Code Online (Sandbox Code Playgroud)

是的,你必须在每个版本的Delphi中都这样做,包括D7.