gpt4 book ai didi

delphi - 错误: "Undeclared identifier" using a form from another Unit - Delphi 2010

转载 作者:行者123 更新时间:2023-12-02 08:08:24 25 4
gpt4 key购买 nike

我正在尝试使用另一个单元的表单,但代码无法识别另一个单元。

示例:

     unit uImpressao;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms, Dialogs, uniGUITypes, uniGUIAbstractClasses,
uniGUIClasses, uniGUIForm, uniGUIBaseClasses, uniPanel, uniURLFrame;

type
TfImpressao = class(TUniForm)
ufRelatorio: TUniURLFrame;
UniImage1: TUniImage;
procedure UniImage1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

implementation

{$R *.dfm}

uses
MainModule, Main, uBancoHoras;

procedure TfImpressao.UniImage1Click(Sender: TObject);
begin
fBh.iTeste.Visible := false;
end;

end.
<小时/>
    unit uBancoHoras;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms, Dialogs, uniGUITypes, uniGUIAbstractClasses,
uniGUIClasses, uniGUIForm, uniLabel, pngimage, uniImage, uniGUIBaseClasses,
uniPanel, uniPageControl, uniButton, uniBitBtn, uniSpeedButton, uniCanvas,
uniDateTimePicker, uniMemo, uniMultiItem, uniComboBox, uniEdit, uniBasicGrid,
uniDBGrid, uniDBMemo, uniRadioButton, uniDBText, uniRadioGroup, frxClass,
frxDBSet;

type
TfBH = class(TUniForm)
iTeste : TUniImage;
private
{ Private declarations }
public
{ Public declarations }

end;

var
url: string;

function fBH: TfBH;

implementation

{$R *.dfm}

uses
MainModule, Main, uImpressao;

function fBH: TfBH;
begin
Result := TfBH(MM.GetFormInstance(TfBH));
end;

procedure TfBH.iTesteClick(Sender: TObject);
begin
fImpressao.ShowModal;
end;
<小时/>

当我尝试在 uBancohoras 单元中使用 uImpressao 单元时,返回错误“未声明的标识符‘fImpressao’”。在 uImpressao 单元中使用 uBancoHoras 单元,效果很好。

我不明白为什么一个单元会发生此错误,而另一个单元不会发生此错误。

希望你能帮助我!

最佳答案

注意:请注意,此答案基于问题中发布的原始代码,该代码随后被完全不同的新代码替换。

fBH 未在单元 A 中声明,因此 fBH.iTeste.Visible := True; 不可能工作;没有这样的变量。您删除了 IDE 为您创建的全局变量 fBH(尽管有趣的是,您在其上方的 implementation 关键字上方留下了 var 语句) .

在声明中重新添加(通过在类声明末尾和 implementation 关键字之间添加 var fBH: TfBH;),或者创建一个实例当您需要使用它并通过那里的局部变量访问它时,在单元 B 中形成。

(无论您朝哪个方向走,您都不会使用表单方法中的变量来寻址表单;请使用 Self 代替。不要使用 fBH.ShowModal;使用要么是 Self.ShowModal 要么是 ShowModal。)

关于delphi - 错误: "Undeclared identifier" using a form from another Unit - Delphi 2010,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28150774/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com