未声明的'FormCreate'错误Delphi

时间:2013-12-05 18:30:22

标签: delphi stringgrid

我试图在字符串网格中命名列(在此灰色行中)。我知道我应该使用这样的东西:

procedure TForm1.FormCreate(Sender: TObject);
begin
  StringGrid1.Cells[0,0] := 'Text 1';
  StringGrid1.Cells[1,0] := 'Text 2';
end;

问题在于错误:

  

' TForm1'在第81行和第34行中不包含名为' FormCreate'的成员。

我是初学者。我的计划有什么问题?

1 个答案:

答案 0 :(得分:4)

您需要在类型中声明方法。

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  ...
  end;

您可以在单元顶部找到的类型声明的代码行。然后你的程序将编译。您还需要确保事件处理程序将处理程序附加到表单的OnCreate事件。使用Object Inspector检查它。

但实现这一切的最简单方法是让IDE全部编写。所以,你会:

  • 删除您在问题中显示的代码。
  • 单击设计器中的表单。
  • 在“对象检查器”中选择“事件”视图。
  • 在对象检查器中查找OnCreate事件。
  • 双击Object Inspector中OnCreate事件的处理程序列。
  • 现在代码编辑器打开,显示一个空的事件处理程序主体,供您添加代码,并且所有其他部分都已连接。具体来说,该方法在类型中声明,并且处理程序连接到事件。

现在,这就是你如何正常地做到这一点,但知道发生事件需要做的三件事情确实是值得的:

  1. 事件处理程序在类的类型中声明。
  2. 事件处理程序在类的实现中定义。
  3. 事件处理程序附加到Object Inspector中的事件。实际上,虽然您在Object Inspector中设置了它,但实际上信息仍然存在于.dfm文件中。
  4. 如果你还不知道这一切,那么在Stack Overflow上提问就不是最有效的方法。一本好书当然会有所帮助。即使是旧版本的Delphi,主要概念也没有多年改变。但如果你没有书,那么你至少应该遵循tutorial