首先,關於畫布
針對delphi的TCanvas類屬性的控件有很多,但是在實際操作過程中,在特性的細節上有壹些差異。例如,TForm和TImage控件的TCanvas屬性:
當用戶在TForm.canvas上繪制圖像時,它不會被保存。此時,如果canvas上的圖像被其他窗體或控件覆蓋,則需要在重新暴露被覆蓋部分時,在窗體的Onpaint事件中手動重繪。
但TImage.canvas會在繪制後保存圖像,所以覆蓋後仍然可以原樣顯示,不需要手動重繪。
如下圖所示:
需要提示的是:
由於windows的窗口機制,在實際操作效果中,只有當同壹窗口中的畫布被內部覆蓋時,才會需要手動重繪。如果不是同壹個軟件的形式,windows系統會自動重畫畫布。
第二,關於畫畫
建議可以使用繪圖類的控件來顯示圖形。比如delphi自帶的TeeChart組件。