使用StatusBar的DrawPanel Event怪怪的 |
尚未結案
|
Clarinet
高階會員 發表:9 回覆:97 積分:126 註冊:2002-05-08 發送簡訊給我 |
怪怪的現象如圖:
有把StatusBar1.Panels[8]和StatusBar1.Panels[9]的 Style 設定為
psOwnerDraw,然後在
StatusBar1.DrawPanel(StatusBar: TStatusBar;
Panel: TStatusPanel; const Rect: TRect);裡面有如下的Code
if Panel.Index in [8, 9] then begin if Panel.Index =8 then APWR :=fPWR1Status//狀態值 else APWR :=fPWR2Status; case APWR of//依狀態值來決定字的顏色 pwrNormal :StatusBar.Canvas.Font.Color :=clWindowText; else StatusBar.Canvas.Font.Color :=clRed; end;//end case PWR1Status with StatusBar1.Canvas do begin TextOut(Rect.Left +16 +2, Rect.Top +2, Panel.Text); end; end;在改變StatusBar1.Panels[8]或[9]的Text時,會變成如上的錯誤圖示(變成顯示主選單的內容)。但,只要把視窗切換至另一個地方,再切換回來時,就是正常的了。 一直找不到問題所在,不知該如何解決? 謝謝! GPS(全球衛星定位系統) http://www.allgps.com
------
GPS(全球衛星定位系統) http://www.allgps.com |
malanlk
尊榮會員 發表:20 回覆:694 積分:577 註冊:2004-04-19 發送簡訊給我 |
|
Clarinet
高階會員 發表:9 回覆:97 積分:126 註冊:2002-05-08 發送簡訊給我 |
引言: 用 TextRect(Rect,Rect.Left 18,Rect.Top 2, Panel.Text); 試試!謝謝大大的回應,但一樣無法解決。 在更改StatusBar1.panels[x].Text時, 我去記錄是否有觸發DrawPanel Event,發現它並沒有進入此Event,但,顯示的文字卻變成主選單的文字了。這真是一個怪現象! 後來,我在修改panels[x].Text時,隨後加入一行 StatusBar1.Update; 即可解決,正常顯示。 然而,又在更改Panels[x 1].Text 的值時,也加入一行StatusBar1.Update, 卻又不正常顯示,看來可能是此元件的問題,不然就是系統底層的問題了! 希望有人能解決或解釋此問題為何? 謝謝大家! GPS(全球衛星定位系統) http://www.allgps.com
------
GPS(全球衛星定位系統) http://www.allgps.com |
malanlk
尊榮會員 發表:20 回覆:694 積分:577 註冊:2004-04-19 發送簡訊給我 |
|
Clarinet
高階會員 發表:9 回覆:97 積分:126 註冊:2002-05-08 發送簡訊給我 |
|
sigmaccc
一般會員 發表:32 回覆:40 積分:14 註冊:2003-11-13 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |