¿Cómo dibujar sobre un control sin lienzo? Por ejemplo, Tpanel no tiene las propiedades de un lienzo, por lo que es difícil escribir o dibujar en él. ¿Le gustaría volver a empaquetarlo usted mismo? ¡Por favor, molestame! ¿Cómo podemos manejarlo cómodamente?
Echa un vistazo a este código
unidad Unidad1;
interfaz
usos
Windows, Mensajes, SysUtils, Variantes, Clases, Gráficos, Controles, Formularios,
Diálogos, StdCtrls, ExtCtrls;
tipo
TForm1 = clase(TForm)
Panel1: Panel T;
Botón1: TBotón;
Botón de procedimiento 1 clic (Remitente: TObject);
privado
{Declaraciones privadas}
público
{Declaraciones públicas}
fin;
var
Formulario1: TForm1;
implementación
{$R*.dfm}
procedimiento TForm1.Button1Click (Remitente: TObject);
var
PanelCanvas: TCanvas;
comenzar
PanelCanvas := TControlCanvas.Create;
TControlCanvas(PanelCanvas).Control := Panel1;
PanelCanvas.Brush.Style := bsClear;
PanelCanvas.Pen.Color := clBlue;
PanelCanvas.Rectangle(2, 2, Panel1.Ancho - 2, Panel1.Alto - 2);
PanelCanvas.Font.Name:='楷体_GB2312';
PanelCanvas.Font.Size:=24;
PanelCanvas.TextOut(Panel1.Ancho div 2,Panel1.Alto div 2,'OK');
PanelCanvas.Gratis;
fin;
fin.
Esto se puede hacer aplicando en pequeñas cantidades. Por supuesto, si desea aplicarlo a un control sin lienzo, será más conveniente utilizar el método anterior para envolver el control original y desarrollar un nuevo control.