TBitmap.BitmapChanged()
- это метод virtual
, который просто запускает публичное событие TBitmap.OnChange
. Поскольку это protected
, вы можете использовать класс доступа, чтобы достичь его:
type
TBitmapAccess = class(TBitmap)
end;
TBitmapAccess(imgc1.Bitmap).BitmapChanged;
Однако, это на самом деле не нужно. TImage
назначает свой внутренний OnChange
обработчик событий своему Bitmap
. Поэтому он должен автоматически реагировать на изменения Bitmap
. Но, если по какой-то причине это не так, правильный способ обновить TImage
- это вызвать метод Repaint()
:
imgc1.Repaint;
Что именно делает внутренний обработчик OnChange
*1018*:
constructor TImage.Create(AOwner: TComponent);
begin
inherited;
FBitmap := TBitmap.Create(0, 0);
FBitmap.OnChange := DoBitmapChanged;
...
end;
procedure TImage.DoBitmapChanged(Sender: TObject);
begin
Repaint;
UpdateEffects;
end;