【发布时间】:2011-07-07 10:06:53
【问题描述】:
我收到了一个错误,我不知道为什么会收到它...
所以:我有一个基于 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;
当我从代码中使用它时效果很好。 但是当我注册它并尝试输入表单时,我得到了错误:
错误 找不到资源 scrollpngbutton_ok。 好的
我不明白,因为我放了 {$R *.res},并且从代码来看这是有效的。 为什么找不到资源?是创建失败了,还是什么?
好的,我可以使用 Loaded;在设计时设置图像,但在运行时不调用 Loaded。
【问题讨论】:
-
什么是
TsAlphaButton? Google 不知道。 -
你在哪个文件中有 $R 指令?
-
一个 AlphaSkin 组件。现在我找到了错误的根源,他们是使用hInstance,什么不等于我的hInstance。我更正了他们的代码。谢谢你的帮助! dd
标签: delphi resources components