У меня есть пользовательский компонент Delphi, происходящий из TGraphicControl.Его класс объявлен следующим образом:
TMyLabel = class(TGraphicControl)
private
...
protected
...
public
...
published
property Height;
property Width write SetWidth;
...
end;
Реализация SetWidth лежит дальше:
procedure TMyLabel.SetWidth(const Value: Integer);
begin
if (Value >= 0) and (Value <> Width)
then begin
inherited Width := Value;
// Do some other stuff
...
end;
MessageDlg('Test', mtInformation, [mbOK], 0);
end;
В настоящее время я вызываю SetWidth, когда ширина компонента программно изменяется во время выполнения или приВремя разработки путем ввода значения в соответствующем поле инспектора объекта.Однако, когда я изменяю размер компонента во время разработки с помощью мыши, поле «Ширина» инспектора объектов обновляется, но окно сообщения не отображается, поэтому моя процедура SetWidth не вызывается.
Мне нужно, чтобы вызывался SetWidthизменяя размер компонента при помощи мышки, чтобы я мог установить флаг для процедуры рисования, чтобы знать, когда она должна делать какие-то другие вещи (кроме простого перерисовывания компонента).Есть ли способ добиться этого?