VCL スタイルのウィンドウ要素を描画するときに、角が正しく描画されないという問題があります。角が丸いスタイルでは、コントロールの境界四角形とスタイルの丸みを帯びたウィンドウ コーナーの間のスペースに白い背景が表示されます。
上の画像は Aqua 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;