在没有OnPaint事件的情况下在delphi表单上绘图

时间:2018-10-13 20:03:08

标签: delphi delphi-xe7

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

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

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

1 个答案:

答案 0 :(得分:9)

您无法执行的操作。 Windows没有持久性画布。当它们被隐藏,最小化,在其他窗口下移动等时,先前的内容将丢失。您必须重新粉刷它们。这就是Windows设计方式的本质。

要么绘制表单以响应绘制消息或事件,要么使用navigateForms() { this.navigateService.navigate('forms'); } 之类的控件来保存持久图像。