我有一个TShape组件。我需要动态加载它,并且需要在该TShape上放置一个数字。如果有人知道-请向我建议。

谢谢拉克什

最佳答案

您可以使用TShape组件的Canvas属性绘制数字,要访问此受保护的属性,必须创建TShape的后代类并发布该属性,或者仅使用interposer class

type
  TShape = class(ExtCtrls.TShape); //interposer class

  TForm1 = class(TForm)
    Shape1: TShape;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
  public
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
    Shape1.Canvas.Font.Name :='Arial';// set the font
    Shape1.Canvas.Font.Size  :=20;//set the size of the font
    Shape1.Canvas.Font.Color:=clBlue;//set the color of the text
    Shape1.Canvas.TextOut(10,10,'1999');
end;

10-05 22:26