从实现区域获取resourcestring标识符

时间:2015-03-19 00:26:04

标签: delphi internationalization resourcestring

我的单位resourcestring部分有implementation。如何在另一个单元中获取resourcestring的标识符?

unit Unit2;

interface

implementation

resourcestring
  SampleStr = 'Sample';

end.

如果它在interface部分中可用,我可以这样写:

PResStringRec(@SampleStr).Identifier

1 个答案:

答案 0 :(得分:4)

单位implementation部分中声明的任何内容都是私有到该单位。 CAN NOT 可以直接从其他设备访问。所以,你必须要么:

  1. resourcestring移至interface部分:

    unit Unit2;
    
    interface
    
    resourcestring
      SampleStr = 'Sample';
    
    implementation
    
    end.
    

    uses
      Unit2;
    
    ID := PResStringRec(@Unit2.SampleStr).Identifier;
    
  2. 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;