จะวาดบนคอนโทรลโดยไม่ใช้แคนวาสได้อย่างไร? ตัวอย่างเช่น Tpanel ไม่มีคุณสมบัติของผืนผ้าใบ ดังนั้นจึงเป็นเรื่องยากที่จะเขียนหรือวาดลงไป คุณต้องการบรรจุใหม่ด้วยตัวเองหรือไม่? โปรดรบกวนฉันด้วย! เราจะจัดการอย่างไรให้สะดวก?
ลองดูรหัสนี้
หน่วย หน่วยที่ 1;
อินเตอร์เฟซ
การใช้งาน
Windows, ข้อความ, SysUtils, ตัวแปร, คลาส, กราฟิก, การควบคุม, แบบฟอร์ม,
กล่องโต้ตอบ, StdCtrls, ExtCtrls;
พิมพ์
TForm1 = คลาส (TForm)
แผง 1: TPanel;
Button1: T ปุ่ม;
ขั้นตอน Button1Click (ผู้ส่ง: TObject);
ส่วนตัว
{ประกาศส่วนตัว}
สาธารณะ
{ประกาศสาธารณะ}
จบ;
var
แบบฟอร์ม 1: TForm1;
การดำเนินการ
{$R *.dfm}
ขั้นตอน TForm1.Button1Click (ผู้ส่ง: TObject);
var
PanelCanvas: TCanvas;
เริ่ม
PanelCanvas := TControlCanvas.Create;
TControlCanvas(PanelCanvas).การควบคุม := 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.ความกว้าง div 2,Panel1.Height div 2,'ตกลง');
PanelCanvas ฟรี;
จบ;
จบ.
ซึ่งสามารถทำได้เมื่อใช้ในปริมาณน้อย แน่นอนว่า หากคุณต้องการนำไปใช้กับคอนโทรลที่ไม่มี Canvas จะสะดวกกว่าถ้าใช้วิธีการด้านบนเพื่อรวมคอนโทรลเดิมและพัฒนาคอนโทรลใหม่