是否可以将TMistakes2D添加到类TForm1中?
type
TMistakes2D: array of TStringList;
end;
type
TForm1 = class(TForm)
mistakes2D: TMistakes2D;
end;
此打印错误...
字段Form1.mistakes2D没有相应的组件。删除声明?
答案 0 :(得分:6)
在声明组件(TForm)之后的第一部分保留给IDE拖放组件时使用。自动将其假定为published
,因为在运行时从DFM文件创建表单时,VCL的流系统会使用它。自动published
可见性会强制为该部分中的项目生成RTTI信息,以便可以在该流处理过程中正确识别和创建它们。
您可以通过创建一个新的空白表单,然后查看源代码来查看其工作原理,该代码看起来像这样:
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TForm1 = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
end.
在表单上放置一个按钮会在该按钮的顶部,表单声明的下方添加声明:
type
TForm3 = class(TForm)
Button1: TButton;
private
{ Private declarations }
public
{ Public declarations }
end;
要声明该类的字段(成员)变量,请将其包含在该类的private
,protected
或public
部分中。
type
TMistakes2D: array of TStringList;
type
TForm1 = class(TForm)
private // Can also be public or protected
mistakes2D: TMistakes2D;
end;
答案 1 :(得分:3)
一个类声明分为几部分,由private
,protected
和public
分隔。
Delphi中的表单编辑器保留第一部分供自己使用。在那里放置了从编辑器创建的所有组件和事件的声明。如果您尝试手动向该部分添加任何内容,则可能会感到困惑。在这种情况下,就是说根据PAS文件,应该有一个名为Mistakes2D的组件,但DFM文件没有这样的组件。
要添加自己的字段和方法,您需要通过添加其他私有,受保护或公共字段来开始另一部分。
type
tMyForm = class(TForm)
// this area is reserved for the Delphi form editor
private // This could be 'public' or 'protected'
// your code can go here
end;