2013-04-09 93 views
0

我们的应用程序主要是单屏应用程序。当进入特定模式时,我们隐藏TRibbon并将其替换为TPanel,其上有一些TSpeedButton组件。 (见下文)。忽略任何不均,按钮标题等什么原因导致这幅奇怪的绘画“腐败”?

OK

我回到正常模式后,然后回来这个特殊的模式,东西被破坏。有什么建议发生了什么?奇怪的是,如果我将鼠标移动到按钮上,图像的外观就会改变。

bad

+0

由于低质量的视频驱动程序,我听说过这种事情发生。尝试减少视频设置中的硬件加速。 – 2013-04-09 01:56:43

+0

另外,你在虚拟机上运行这个吗?我在问,因为VMWare Player在最近几个版本中出现屏幕更新错误。 – 2013-04-09 06:52:40

+0

您可以通过在模式切换后强制重绘来解决该问题吗? – 2013-04-09 07:36:55

回答

0

谢谢大家。找到了解决方法。

它是一般用途的软件,所以如果低质量的视频驱动程序容易出现这个问题,我们需要改变。

它不在虚拟机上;这是一个Win7电脑。很高兴知道VMWare问题,因为我确实使用VMWare。

重新绘制它并没有帮助,但@David Heffernan的评论给了我一个想法,让我得到了答案。这个想法是在整个过程中将面板绘制为位图&将该位图写入文件。

procedure WriteToolbarBitmapFile(sText:string); 
    var 
    bmp:TBitmap; 
    begin 
    bmp:=TBitmap.Create; 
    try 
     bmp.Width:=pnlIMToolbar.Width; 
     bmp.Height:=pnlIMToolbar.Height; 
     pnlIMToolbar.PaintTo(bmp.Canvas, 0, 0); 
     bmp.SaveToFile('c:\tmp\' + FormatDateTime('hh-nn-ss', Now) + ', ' + sText + '.bmp'); 
    finally 
     bmp.Free; 
    end; 
    end; 

它直接变得明显的问题发生时,我试图设置有问题(pnlIMToolbar),以确保它的位置高于另一控制面板的位置。改变它,所以另一个控制位置被设置。

相关问题