从资源文件中读取字符串列表

时间:2012-09-08 17:32:14

标签: delphi delphi-xe

我正在使用Delphi XE Starter。我创建了一个CCs.RC文件并将该文件添加到项目中。我的CCs.RC文件中的典型行如下所示:

Danish1cc Text Danish1.cc

直接在实施专线之后我添加了

{$R CCs}

当我尝试将此文件读入现有的字符串列表时,收到[EResNotFound][1]错误消息。这是我用来尝试阅读文件的代码:

procedure LoadStringListFromResource(const ResName: string;SL : TStringList);
var
  RS: TResourceStream;
begin
  RS := TResourceStream.Create(HInstance, ResName, RT_RCDATA);
  try
    SL.LoadFromStream(RS);
  finally
    RS.Free;
  end;
end;
///
LoadStringListFromResource('Danish1cc',MySL)

我的目标是将文件嵌入我的EXE中,当然可以阅读它:)感谢您的帮助。

2 个答案:

答案 0 :(得分:9)

您的资源类型不匹配。在* .RC文件中,您使用TEXT,而在代码中使用RCDATA。 您必须将* .RC文件更改为

Danish1cc RCDATA Danish1.cc

或者你必须改变

RS := TResourceStream.Create(HInstance, ResName, RT_RCDATA);

RS := TResourceStream.Create(HInstance, ResName, 'Text');

答案 1 :(得分:0)

我认为问题在于这一行 - {$R CCs}

您已经编译了一个资源文件,该文件不是名为CCs.res?

如果是这样,代码中的行应为{$R CCs.res}