-
Пывтаюсь примерно так: TMapLabel = class(TLabel) private procedure Paint;override; ... end;
implementation
procedure TMapLabel.Paint; var Text : string; begin inherited Paint; // Нужно, чтобы лейбл был прозрачным, но в рамочке if FShowBorder then begin Canvas.Brush.Style := bsClear; Canvas.Rectangle(Canvas.ClipRect); end; end;
Все вроде бы работает, но до того времени пока компонент не частично перекыт другими окнами. ( появляются ченые полосы ) Все приходит в норму при вызове TMyLabel.invalidate.
-
> Canvas.Rectangle(Canvas.ClipRect);
Замени на if FShowBorder then
begin
Canvas.Brush.Style := bsClear;
Canvas.Rectangle(ClientRect);
end;
-
>Константинов procedure Paint;override; //А у Вас компилятор не ругается, что Вы область видимости сузили? Protected, вообще-то
|