我有一个TShape组件。我需要动态加载它并我需要在TShape上放置一个数字。如果有人知道的话 - 请向我建议。
感谢 Rakesh
答案 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)