以下供參考:
壹、關於 canvas
delphi 的 TCanvas 類屬性有多個控件都有,但實際的運行過程中,特性細節方面有所區別。比如,TForm 和 TImage 兩種控件的 TCanvas 屬性:
當用戶在 Tform.canvas 上進行圖像繪制後,並不會保存,此時,如果 canvas 上的圖像被其他窗體或控件遮蓋,當遮蓋部分又重新顯露時,需要對所繪制的圖像在 Form 的 Onpaint 事件中人工重新繪制壹次。
而 TImage.canvas 繪制圖像後會進行保存,因此被遮蓋後,仍然可以顯示原樣,不需要專門手動進行重繪。
如下圖所示例:
需要提示的是:
由於 windows 的窗口機制,在實際運行效果中,只有同壹窗口內的 Canvas 在內部覆蓋時,才會出現需要手動重繪的情況,如果不是同壹軟件的窗體, windows 系統會自動進行 canvas 的重繪。
二、關於繪圖
建議可以使用制圖類的控件進行圖形的顯示。比如,delphi 自帶的 TeeChart 組件。