У меня возникают проблемы с неправильно окрашенными углами при рисовании оконных элементов в стиле VCL. В стилях, которые имеют закругленные углы, я получаю белый фон в пространстве между ограничивающим прямоугольником элемента управления и закругленным окном окна стиля.Стиль Delphi XE2 живопись
изображение было запустить с помощью аква Light Slate, но в любом стиле с закругленными углами покажет такую же проблему. Что мне не хватает?
type
TSample = class(TCustomControl)
protected
procedure Paint; override;
end;
{ TForm1 }
procedure TForm1.FormCreate(Sender: TObject);
var
R: TRect;
S: TSample;
begin
R := ClientRect;
InflateRect(R, -20, -20);
S := TSample.Create(Application);
S.Parent := Self;
S.BoundsRect := R;
end;
{ TSample }
procedure TSample.Paint;
var
Details: TThemedElementDetails;
begin
Details := StyleServices.GetElementDetails(twCaptionActive);
StyleServices.DrawParentBackground(Self.Handle, Canvas.Handle, Details, False);
StyleServices.DrawElement(Canvas.Handle, Details, ClientRect);
end;
Кстати, я также попытался ParentBackground: = True, никаких изменений. Попробовали также убедиться, что csOpaque удален. –
Вы пытались отладить метод 'StyleServices.DrawElement', чтобы увидеть, как он рисует растровое изображение в холсте? – RRUZ
Честно говоря, я надеялся избежать погружения в внутренние части движка темы, но если у кого-то нет лучших идей, это то, что мне нужно сделать. –