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;

你可能感兴趣的:(image)