A
Archerfl
Unregistered / Unconfirmed
GUEST, unregistred user!
新建一个工程,在窗体上放一Panel,然后在窗体的OnPaint中写下如下代码:
procedure TForm1.FormPaint(Sender: TObject);
var
C: TControlCanvas;
begin
C := TControlCanvas.Create;
try
C.Control := Panel1;
C.Pen.Width := 5;
C.Pen.Color := clRed;
C.PenPos := Point(5,20);
C.LineTo(100,20);
// self.Repaint;
finally
C.Free;
end;
end;
当程序运行时,在Panel中并没有出现想象中的一条红线,这个很正常,因为在窗体自画完成
后,Panel才开始自画,并且是首先清空自己的重画区域。
但是,当我把上面加注释的那句加上后,在程序运行后,就会出现红线,为什么呢?
procedure TForm1.FormPaint(Sender: TObject);
var
C: TControlCanvas;
begin
C := TControlCanvas.Create;
try
C.Control := Panel1;
C.Pen.Width := 5;
C.Pen.Color := clRed;
C.PenPos := Point(5,20);
C.LineTo(100,20);
// self.Repaint;
finally
C.Free;
end;
end;
当程序运行时,在Panel中并没有出现想象中的一条红线,这个很正常,因为在窗体自画完成
后,Panel才开始自画,并且是首先清空自己的重画区域。
但是,当我把上面加注释的那句加上后,在程序运行后,就会出现红线,为什么呢?