Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi 重新油漆油漆盒不起作用_Delphi - Fatal编程技术网

Delphi 重新油漆油漆盒不起作用

Delphi 重新油漆油漆盒不起作用,delphi,Delphi,将图像绘制到颜料盒中的函数从到2个位置调用,如果从TPagecontrol pagechange调用,则可以正常工作,但如果从form.formresize(..)调用,则会绘制图像,但之后会立即重新绘制颜料盒,使其完全变白。我不知道这个恶行是从什么顺序来的--- 您不能自己调用paint boxOnPaint事件处理程序。执行此操作时,油漆盒画布未正确准备。要强制绘制框重新绘制,需要调用Invalidate或repaint方法。像这样: PaintBox1.Invalidate; 或 调用I

将图像绘制到颜料盒中的函数从到2个位置调用,如果从TPagecontrol pagechange调用,则可以正常工作,但如果从form.formresize(..)调用,则会绘制图像,但之后会立即重新绘制颜料盒,使其完全变白。我不知道这个恶行是从什么顺序来的---


您不能自己调用paint box
OnPaint
事件处理程序。执行此操作时,油漆盒画布未正确准备。要强制绘制框重新绘制,需要调用
Invalidate
repaint
方法。像这样:

PaintBox1.Invalidate;

调用
Invalidate
会导致异步重新绘制。控件被标记为脏,当消息队列下一个为空时,将合成
WM_PAINT
消息并重新绘制控件

调用
重新绘制
强制执行同步绘制循环。也就是说,将执行绘制,然后返回
Repaint
功能

除非您有强制同步重新绘制的特殊原因,否则我建议您调用
Invalidate


@Sertac在一条评论中建议您的绘制代码不在
OnPaint
处理程序中。如果是这样的话,那将是一个更大的问题。必须将所有绘制代码放入附加到绘制框
OnPaint
事件的事件处理程序中。

您不能自己调用绘制框
OnPaint
事件处理程序。执行此操作时,油漆盒画布未正确准备。要强制绘制框重新绘制,需要调用
Invalidate
repaint
方法。像这样:

PaintBox1.Invalidate;

调用
Invalidate
会导致异步重新绘制。控件被标记为脏,当消息队列下一个为空时,将合成
WM_PAINT
消息并重新绘制控件

调用
重新绘制
强制执行同步绘制循环。也就是说,将执行绘制,然后返回
Repaint
功能

除非您有强制同步重新绘制的特殊原因,否则我建议您调用
Invalidate

@Sertac在一条评论中建议您的绘制代码不在
OnPaint
处理程序中。如果是这样的话,那将是一个更大的问题。必须将所有绘制代码放入附加到绘制框
OnPaint
事件的事件处理程序中

PaintBox1.Repaint;