2011-03-02 23 views
3

我得到一个错误,我不知道为什么我得到它...德尔福:设计模式中的“资源未找到” - 为什么?

所以:我有一个新的组件,基于sAlphaButton。 这有ImageList属性,我的组件扩展此按钮与我自己的字幕/图像,翻译成匈牙利语。

我用LoadRes来获取预定义的图像。

看到这个:

procedure TScrollPNGButton.LoadAsImageListFromRes(ResNames : TStrings; IL : TsAlphaImageList); 
var 
    s : string; 
    i : integer; 
begin 
    IL.CLear; 
    for i := 0 to ResNames.Count - 1 do begin 
     s := ResNames[i]; 
     AddImageFromRes(hInstance, IL, s, ifPNG); 
    end; 
end; 


procedure TScrollPNGButton.LoadResToImageList; 
var 
    sl : TStringList; 
begin 
    sl := TStringList.Create; 
    try 
     sl.Text := 
      Trim(
        'scrollpngbutton_ok'#13 + 
        'scrollpngbutton_cancel'#13 + 
        'scrollpngbutton_close'#13 + 
        'scrollpngbutton_yes'#13 + 
        'scrollpngbutton_no'#13 + 
        'scrollpngbutton_refresh'#13 + 
        'scrollpngbutton_print'#13 + 
        'scrollpngbutton_email'#13 + 
        'scrollpngbutton_add'#13 + 
        'scrollpngbutton_delete'#13 + 
        'scrollpngbutton_edit'#13 + 
        '' 
       ); 
     LoadAsImageListFromRes(sl, FImgs); 
    finally 
     sl.Free; 
    end; 
end; 


constructor TScrollPNGButton.Create(aOwner : TComponent); 
begin 
    inherited Create(aOwner); 
    FImgs := TsAlphaImageList.Create(nil); 
    inherited Images := FImgs; 
    LoadResToImageList; 
end; 

当我使用它的代码它的工作好。 但当我注册的,我尝试投入形式,我得到了错误:

Error Resource scrollpngbutton_ok not found. OK

我不明白,因为我把{$ R * .RES},并从这个代码工作中。 为什么找不到资源?创作失败了,还是什么?

好的,我可以使用Loaded;在设计时设置图像,但Loaded不在运行时调用。

+0

什么是'TsAlphaButton'? [Google](http://www.google.se/search?sourceid=chrome&ie=UTF-8&q=TsAlphaButton)不知道。 – 2011-03-02 16:35:18

+0

在哪个文件中您有$ R指令? – jachguate 2011-03-02 16:44:19

+0

AlphaSkin组件。现在我发现错误的来源,他们使用hInstance,什么是不平等我的实例。我纠正了他们的代码。谢谢你的帮助! dd – durumdara 2011-03-03 12:31:14

回答

11

您不能使用* .res。这是IDE生成的与DFM /单元名称匹配的文件。

创建您自己的资源文件(您可以将其创建为文本文件)并自己编译(或者如果您使用的是Delphi 7或更高版本,请让IDE为您完成)。

/* YourResources.rc */ 
SCROLLPNGBUTTON BITMAP MyBitmap.bmp 

在源:

{$R YourResources.res YourResources.rc} // The IDE will compile .rc to make .res 
+0

+1;这是你很容易出错的事情。 – 2011-03-02 21:50:12