小编le-*_*e-a的帖子

了解Delphi变量声明/初始化

因为它与Delphi有关...

当变量声明某种类型时,它是否初始化为该类型的OBJECT?或者必须为变量分配一个表达式,该表达式返回该类型的对象?

我来自强大的Java背景.我的意思是这个...在Java中,假设您声明一个名为Orange的用户定义类型的实例变量.看起来像这样:

private Orange _fruit;
Run Code Online (Sandbox Code Playgroud)

变量_fruit仍然保持对null的引用,直到实际分配了一个Orange类的实例,如下所示:

_fruit = new Orange();
Run Code Online (Sandbox Code Playgroud)

在Delphi中如果我声明一个类型为TForm的变量,如下所示:

var
  Form : TForm;
Run Code Online (Sandbox Code Playgroud)

Form是否已初始化为TForm对象?或者它仍然是零?

我问,因为我在尝试编译一小段代码时遇到错误,如下所示:

这是主要单位:

unit Main;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils,
  System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Second;

type
  TForm1 = class(TForm)
    ShowForm2: TButton;
    procedure ShowForm2Click(Sender: TObject);
  end;

var
  Form1: TForm1;
  SecondForm : TSecondForm;

implementation

{$R *.dfm}

procedure TForm1.ShowForm2Click(Sender: TObject);
begin
SecondForm.ShowModal;
end;
end.
Run Code Online (Sandbox Code Playgroud)

这是第二单元:

unit Second;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
  System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs,
  Vcl.StdCtrls;

type
  TSecondForm = class(TForm)
    Label1: …
Run Code Online (Sandbox Code Playgroud)

delphi variable-assignment variable-initialization

4
推荐指数
1
解决办法
1075
查看次数