我有一个在其resourcestring
部分中具有implementation
的单元。如何在另一个单元中获取resourcestring
的标识符?
unit Unit2;
interface
implementation
resourcestring
SampleStr = 'Sample';
end.
如果在
interface
部分中可用,我可以这样写:PResStringRec(@SampleStr).Identifier
最佳答案
在单元的implementation
部分中声明的任何内容都是该单元的私有内容。不能直接从另一个单元访问它。因此,您将必须:
将resourcestring
移至interface
部分:
unit Unit2;
interface
resourcestring
SampleStr = 'Sample';
implementation
end.
uses
Unit2;
ID := PResStringRec(@Unit2.SampleStr).Identifier;
将
resourcestring
保留在implementation
部分中,并在interface
部分中声明一个函数以返回标识符:unit Unit2;
interface
function GetSampleStrResID: Integer;
implementation
resourcestring
SampleStr = 'Sample';
function GetSampleStrResID: Integer;
begin
Result := PResStringRec(@SampleStr).Identifier;
end;
end.
uses
Unit2;
ID := GetSampleStrResID;