Hello,
Eventhough TAdvShape is a descent from class(TGraphicControl) - which is a requirement for TControllist - Tadvshape does not render correctly on all TControllist items in Runtime (especially on TControllist.Itemcount > 1).
I tried some OnBeforeDraw / OnAfterDraw / OnShowControl shenanigans - but no solution.
Any Idea what to do?
To verify a simple example:
unit Unit11;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, AdvShape, Vcl.ExtCtrls, Vcl.ControlList;
type
TForm11 = class(TForm)
ControlList1: TControlList;
Shape1: TShape;
AdvShape1: TAdvShape;
procedure FormCreate(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form11: TForm11;
implementation
{$R *.dfm}
procedure TForm11.FormCreate(Sender: TObject);
begin
controllist1.itemcount:= 10;
end;
end.
object Form11: TForm11
Left = 0
Top = 0
Caption = 'Form11'
ClientHeight = 442
ClientWidth = 628
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -12
Font.Name = 'Segoe UI'
Font.Style = []
OnCreate = FormCreate
TextHeight = 15
object ControlList1: TControlList
Left = 0
Top = 0
Width = 628
Height = 442
Align = alClient
ItemHeight = 100
ItemMargins.Left = 0
ItemMargins.Top = 0
ItemMargins.Right = 0
ItemMargins.Bottom = 0
ParentColor = False
TabOrder = 0
ExplicitWidth = 624
ExplicitHeight = 441
object Shape1: TShape
Left = 208
Top = 16
Width = 65
Height = 65
end
object AdvShape1: TAdvShape
Left = 352
Top = 16
Width = 65
Height = 65
Appearance.Brush.Style = bsClear
Appearance.Color = clWhite
Appearance.ColorTo = clBtnFace
Appearance.Direction = gdHorizontal
Appearance.URLColor = clBlue
AutoSize = True
BackGround.Position = bpTopLeft
Shape = stStar
ShapeHeight = 64
ShapeWidth = 64
Text = ''
TextOffsetX = 0
TextOffsetY = 0
Version = '1.2.1.0'
end
end
end