Как написать число на компоненте TShape? - PullRequest
1 голос
/ 23 сентября 2011

У меня есть компонент TShape. Мне нужно загрузить его динамически и Мне нужно разместить число на этом TShape . Если кто-нибудь знает путь - пожалуйста, предложите его мне.

Спасибо Ракеш

Ответы [ 2 ]

3 голосов
/ 23 сентября 2011

Вы можете использовать свойство Canvas компонента TShape, чтобы нарисовать число, чтобы получить доступ к этому защищенному свойству, вы должны создать наследующий класс TShape и опубликовать это свойство или просто использовать вставщик класс .

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 голос
/ 23 сентября 2011

Поместите TLabel над ним и сделайте его фон прозрачным (Transparent = True). При необходимости измените выравнивание текста (Выравнивание: = taCenter)

...