作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用另一个单元的表单,但代码无法识别另一个单元。
示例:
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/
我是一名优秀的程序员,十分优秀!