TImageList 图标更新通知方案

VCL中有 TChangeLink 这个对象,用于当ImageList刷新是通知到绑定ImageList的控件进行更新处理。


实现控件创建TChangeLink对象注册到ImageList

1 // 注册
2 Images.RegisterChanges(FImageChangeLink);
3 // 注销
4 Images.UnRegisterChanges(FImageChangeLink);

事例代码

procedure TmtCustomSpeedButton.SetImages(Value: TCustomImageList);
begin
  if Value <> FImages then
  begin
    if Images <> nil then
      Images.UnRegisterChanges(FImageChangeLink);
    FImages := Value;
    if Images <> nil then
    begin
      Images.RegisterChanges(FImageChangeLink);
      Images.FreeNotification(Self);
    end;
    UpdateImageList;
  end;
end;
原文地址:https://www.cnblogs.com/gleam/p/2782917.html