Delphi Tokyo-我有一个独立的UNIT,我正在用作实用程序/库...也就是说,没有与此相关的表格。例程之一创建并显示一个“ OpenDialog”组件。当我尝试编译代码时,出现错误: 未声明的标识符“ Self”。我的代码很简单...
var
ExcelOpenDialog1: TOpenDialog;
begin
ExcelOpenDialog1 := TOpenDialog.Create(Self);
...
这使我得出结论,我在USES子句中没有需要的条目,但是我不知道我缺少哪一个。我当前使用的条款是...
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
System.Classes, Vcl.Graphics, System.UITypes, ComObj, Office_TLB, Excel_TLB,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ComCtrls, Vcl.ExtCtrls, Vcl.StdCtrls,
System.IOUtils, System.StrUtils, Generics.Collections, Generics.Defaults;
我需要添加什么才能进行编译?当我将TOpenDialog组件添加到窗体中(并进行编译)时,我发现USES子句中的所有条目已经包含在我的库单元中...
答案 0 :(得分:3)
@whosrdaddy已经提到,您在此处没有对象,因此应使用NIL
作为owner参数的值。
在这种情况下,您需要在完成对话框后负责清理,例如
var
ExcelOpenDialog1: TOpenDialog;
begin
ExcelOpenDialog1 := TOpenDialog.Create(NIL);
try
// do your stuff here with ExcelOpenDialog1
finally
ExcelOpenDialog1.Free;
end;