procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Canvas.MoveTo(StartX, StratY); //StartX, StratY为MouseDown记录的坐标值
Canvas.LineTo(X, Y);
end;可是当窗体最小化或其它窗外经过上面时,画的这些线都被清除了,请问为什么?
Shift: TShiftState; X, Y: Integer);
begin
Canvas.MoveTo(StartX, StratY); //StartX, StratY为MouseDown记录的坐标值
Canvas.LineTo(X, Y);
end;可是当窗体最小化或其它窗外经过上面时,画的这些线都被清除了,请问为什么?
你在IMAGE里画就没事了。
如果你在窗体上画,必须要处理OnPaint事件
如果在窗体上画那如何在OnPaint事件呢?
用两个全局量保存线的头尾点坐标。在form 的OnPaint 事件中再次画线。
也就是你还需要在MouseUp里记录下线的第二个点坐标。然后在 OnPaint 里再次画线
procedure TForm1.FormPaint(Sender: TObject);
begin
Canvas.Pen.Color:=clBlue;
Canvas.Ellipse(10,10,50,50);
end;