캔버스 없이 컨트롤에 그리는 방법은 무엇입니까? 예를 들어 Tpanel은 캔버스의 속성이 없기 때문에 글을 쓰거나 그림을 그리는 것이 어렵습니다. 직접 다시 포장하시겠습니까? 나를 괴롭혀주세요! 어떻게 하면 편리하게 처리할 수 있나요?
이 코드를 살펴보세요
단위 Unit1;
인터페이스
용도
Windows, 메시지, SysUtils, 변형, 클래스, 그래픽, 컨트롤, 양식,
대화 상자, StdCtrls, ExtCtrls;
유형
TForm1 = 클래스(TForm)
패널1: T패널;
버튼1: T버튼;
PROcedure Button1Click(Sender: TObject);
사적인
{비공개 선언}
공공의
{공개 선언}
끝;
var
Form1: TForm1;
구현
{$R *.dfm}
절차 TForm1.Button1Click(Sender: TObject);
var
패널캔버스: TCanvas;
시작하다
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,'확인');
PanelCanvas.Free;
끝;
끝.
소량 적용시 가능합니다. 물론, 캔버스가 없는 컨트롤에 적용하고자 한다면 위의 방법을 이용하여 원래 컨트롤을 래핑하고 새로운 컨트롤을 개발하는 것이 더 편리할 것입니다.