在delphi窗体上绘制而不发生OnPaint事件

在delphi窗体上绘制而不发生OnPaint事件,delphi,delphi-xe7,Delphi,Delphi Xe7,我有一个问题,这是我的代码: procedure TForm1.Button1Click(Sender: TObject); begin Form1.Canvas.MoveTo(0, 0); Form1.Canvas.LineTo(100, 100); end; 此代码工作正常,表单上有一行。但当我单击最小化按钮,然后显示FormNormal时,该行消失了。我想要不带OnPaint和OnResize事件的绘图。请帮助我您试图做的事情是不可能的。Windows没有持久的画布。当它

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

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

此代码工作正常,表单上有一行。但当我单击最小化按钮,然后显示FormNormal时,该行消失了。我想要不带OnPaint和OnResize事件的绘图。请帮助我

您试图做的事情是不可能的。Windows没有持久的画布。当它们被隐藏、最小化、移动到其他窗口下等时,以前的内容将丢失。你必须重新粉刷它们。这就是Windows设计的精髓所在


绘制表单以响应绘制消息或事件,或者使用TImage之类的控件来保存持久图像。

这就像想在不启动汽车的情况下驾驶汽车一样。它就是不起作用。不行,谢谢你。当我使用opengl绘图时,也是同样的问题。现在我明白了