Как рисовать на элементе управления без холста? Например, Tpanel не обладает свойствами холста, поэтому на нем сложно писать или рисовать. Хотели бы вы переупаковать его самостоятельно? Пожалуйста, беспокойте меня! Как мы можем с этим справиться?
Взгляните на этот код
блок Unit1;
интерфейс
использует
Windows, сообщения, SysUtils, варианты, классы, графика, элементы управления, формы,
Диалоги, StdCtrls, ExtCtrls;
тип
ТФорм1 = класс (ТФорма)
Панель1: ТПанель;
Кнопка1: Кнопка T;
PROcedure Button1Click (Отправитель: TObject);
частный
{Частные заявления}
общественный
{Публичные заявления}
конец;
вар
Форма1: ТФорм1;
выполнение
{$R *.dfm}
процедура TForm1.Button1Click(Отправитель: TObject);
вар
ПанельКанвас: Тканвас;
начинать
PanelCanvas := TControlCanvas.Create;
TControlCanvas(PanelCanvas).Control:= Panel1;
PanelCanvas.Brush.Style := bsClear;
PanelCanvas.Pen.Color := clBlue;
PanelCanvas.Rectangle(2, 2, Panel1.Width - 2, Panel1.Height - 2);
PanelCanvas.Font.Name:='楷体_GB2312';
PanelCanvas.Font.Size:=24;
PanelCanvas.TextOut(Panel1.Width div 2,Panel1.Height div 2,'OK');
PanelCanvas.Free;
конец;
конец.
Это можно сделать при применении в небольших количествах. Конечно, если вы хотите применить его к элементу управления без холста, будет удобнее использовать описанный выше метод для переноса исходного элемента управления и разработки нового элемента управления.