2013-04-09 98 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),以確保它的位置高於另一控制面板的位置。改變它,所以另一個控制位置被設置。

相關問題