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;