如何在TShape组件上写一个数字?

时间:2011-09-23 05:14:09

标签: delphi delphi-7

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

感谢 Rakesh

2 个答案:

答案 0 :(得分:3)

您可以使用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;

答案 1 :(得分:1)

在其上方放置一个TLabel并使其背景透明(Transparent = True)。如果需要,编辑文本对齐(对齐:= taCenter)