我有一个表格,我刮一个位图发送到一个小型嵌入式TFT显示屏。然后,我将显示中的触摸事件注入到表单中以激活控件。除非表格不可见,否则这一切都很有效。如果它从可见桌面上移开,最小化或关闭它将不会获得绘制事件并且永远不会更新。
有没有办法强制画布重绘自己可见? 所有明显的事情,如称为重绘都不起作用。
答案 0 :(得分:3)
是的,您可以在表单上使用PaintTo
方法:
procedure TForm1.Button1Click(Sender: TObject);
var
Bitmap: TBitmap;
begin
Bitmap := TBitmap.Create;
Bitmap.Width := Form2.Width;
Bitmap.Height := Form2.Height;
Form2.PaintTo(Bitmap.Canvas, 0, 0);
Image1.Picture.Assign(Bitmap);
Bitmap.Free;
end;
我的小例子我用两个表单Form1
和Form2
创建了一个项目。在Form2上我放置了一个标签和Timer。
以下是Form2
procedure TForm2.Timer1Timer(Sender: TObject);
begin
Label1.Caption := FloatToStr(now);
end;
我的思绪很好。