delphi - 未声明的 'FormCreate' 错误 Delphi

标签 delphi stringgrid

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

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

问题是有错误:

'TForm1' does not contain a member named 'FormCreate'at line 81".



我是初学者。我的程序有什么问题?

最佳答案

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

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

还有那行代码到你将在你的单元顶部附近找到的类型的声明。然后你的程序将编译。您还需要确保事件处理程序将处理程序附加到表单的 OnCreate事件。使用对象检查器进行检查。

但实现这一切的最简单方法是让 IDE 编写所有内容。所以,你会:
  • 删除您在问题中显示的代码。
  • 单击设计器中的表单。
  • 在 Object Inspector 中选择 Events View 。
  • 查找 OnCreate对象检查器中的事件。
  • 双击 OnCreate 的处理程序列对象检查器中的事件。
  • 现在代码编辑器打开,显示一个空的事件处理程序主体供您添加代码,并且所有其他部分都连接起来。具体来说,方法是在类型中声明的,并且处理程序连接到事件。

  • 现在,这就是您通常的做法,但了解触发事件所需的三件事确实值得:
  • 事件处理程序在类的类型中声明。
  • 事件处理程序在类的实现中定义。
  • 事件处理程序附加到对象检查器中的事件。事实上,尽管您在 Object Inspector 中进行了设置,但信息实际上存在于 .dfm 文件中。

  • 如果你还不知道这一切,那么在 Stack Overflow 上提问确实不是最有效的跟上进度的方法。一本好书肯定会有所帮助。即使是旧版本的 Delphi,主要概念多年来也没有改变。但是如果你没有书,那么你至少应该关注 tutorial .

    关于delphi - 未声明的 'FormCreate' 错误 Delphi,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20407835/

    相关文章:

    multithreading - 使线程使用中央数据库连接的正确方法

    delphi - 重构 Delphi 6 事件处理程序属性的工具/实用程序?

    delphi - 清除 stringgrid 时的 EAcessViolation

    delphi - 是否可以在delphi 7调试器中查看调用堆栈?

    windows - 是什么导致桌面盾牌图标覆盖在 *SOME* 桌面上

    delphi - DCC错误...: E2010 Incompatible types: 'integer' and 'Integer'

    delphi - 使用应用程序网络共享在 Delphi XE 中对客户端上的服务器端数据进行分页

    delphi - Fmx TStringGrid 行颜色

    c++ - 在 C++ 构建器中为单元格着色,StringGrid