【发布时间】:2018-01-15 20:40:56
【问题描述】:
我将把这个过程分配给OnMouseEnter。我有一些TImage 会改变它的图片OnMouseEnter。在事件处理程序上制作它的每个过程更容易。但我不喜欢重复相同的代码。
var
i: Integer;
CoName: TComponent;
png: TPngImage;
s: string;
begin
s := '';
for i := 1 to 16 do
begin
CoName := Form1.Components[i];
if CoName is TImage then
begin
s := CoName.Name;
Break;
end;
end;
if Trim(s) <> '' then
begin
png := TPngImage.Create;
try
png.LoadFromResourceName(hInstance, 'ResImgA');
// s.picture.Assign(png); > i can not do this
finally
FreeAndNil(png);
end;
end;
end;
我怎样才能允许s 进入TImage.Name?
【问题讨论】:
-
我不确定我理解你想要什么。不要引用
s,而是使用CoName as TImage的引用(BTW 变量名错误)。或使用FindComponent(s) as TImage -
@kobik 我需要获取
CoName的名称,然后这个名称将分配资源。 @Victoria 谢谢,请纠正它。 -
TImage应该更改为OnMouseEnter?那么Sender参数就是你感兴趣的TImage。 -
如果您确定必须这样做,那很好。继续。我很确定你做错了,但我不想费力说服你。
-
如果您不打算对某些图像执行任何特殊操作,则不需要不同的程序。 Delphi 事件通常会给您
Sender作为确定事件触发位置的一种方式。在您的情况下,它是您要查找的TImage。
标签: delphi components timage