遇到了一个小问题,是我自己的问题还是你们也不能将资源中的图像分配给TSpeedButton的图标而不带有丑陋的黑色轮廓,如下所示?
我已经按照同样的方式为TImage组件分配了它,并获得了所需的结果。
我已经搜索了相当长的时间,但似乎没有人遇到这个奇怪和烦人的问题。
以下是我表单的源代码:
procedure TForm3.Button1Click(Sender: TObject);
var r : tresourcestream; png : tpngimage;
begin
r := tresourcestream.CreateFromID(hinstance,34,'cardimage');
png := tpngimage.Create;
png.LoadFromStream(r);
png.AssignTo(image1.Picture.bitmap);
png.AssignTo(speedbutton1.glyph);
png.Free;
r.Free;
end;
如果你还没有猜到,34是与图片显示相关的类型为“cardimage”的图像。
X.Assign(Y)
,而不是Y.AssignTo(X)
。如果TX
不知道如何从TY
获取属性,则会自动调用Y.AssignTo(X)
来委托给TY
。但是,如果TY
不知道如何将自己分配给TX
,则不会委托给目标对象。 - Rob Kennedy