在没有 OnPaint 事件的 delphi 窗体上绘图

Drawing on the delphi form without OnPaint event

我有问题,这是我的代码:

procedure TForm1.Button1Click(Sender: TObject);
begin
  Form1.Canvas.MoveTo(0, 0);
  Form1.Canvas.LineTo(100, 100);
end;    

这段代码工作正常,表格上有一行。但是当我点击最小化按钮然后正常显示表格时,该行消失了。我想在没有 OnPaint 和 OnResize 事件的情况下进行绘制。请帮助我

您正在尝试做的事情是不可能的。 Windows 没有永久画布。当它们被隐藏、最小化、移动到其他 windows 下等时,之前的内容将丢失。你必须重新粉刷它们。这就是 Windows 设计的本质。

要么绘制表单以响应绘制消息或事件,要么使用像 TImage 这样的控件来保存持久图像。