Comment dessiner sur un champ sans canevas ? Par exemple, Tpanel n’a pas les propriétés d’un canevas, il est donc difficile d’écrire ou de dessiner dessus. Souhaitez-vous le reconditionner vous-même ? S'il vous plaît, dérangez-moi ! Comment pouvons-nous le gérer facilement ?
Jetez un oeil à ce code
unité Unité1 ;
interface
utilise
Windows, messages, SysUtils, variantes, classes, graphiques, contrôles, formulaires,
Boîtes de dialogue, StdCtrls, ExtCtrls ;
taper
TForm1 = classe(TForm)
Panneau 1 : TPanel ;
Bouton1 : TButton ;
PProcédure Button1Click (Expéditeur : TObject );
privé
{Déclarations privées}
publique
{Déclarations publiques}
fin;
var
Formulaire1 : TForm1 ;
mise en œuvre
{$R *.dfm}
procédure TForm1.Button1Click(Expéditeur : TObject);
var
PanelCanvas : TCanvas ;
commencer
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.Gratuit ;
fin;
fin.
Cela peut être fait en appliquant en petites quantités. Bien entendu, si vous souhaitez l'appliquer à un contrôle sans canevas, il sera plus pratique d'utiliser la méthode ci-dessus pour envelopper le contrôle d'origine et développer un nouveau contrôle.