線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:287
推到 Plurk!
推到 Facebook!

使用 TChart 在 TThread 中產圖,Free 物件時發生 System Error Code 5 拒絕存取。

尚未結案
Jiaga
一般會員


發表:1
回覆:1
積分:0
註冊:2013-03-16

發送簡訊給我
#1 引用回覆 回覆 發表時間:2017-05-27 00:29:27 IP:219.85.xxx.xxx 未訂閱
我自已寫了一個 TFrame 裡面放了一個 TChart。
在單獨使用時不管是顯示、產圖都很正常。

但在 TThread 裡面產圖會發生,圖檔不完整,我參考了下列網址說明。
http://www.teechart.net/support/viewtopic.php?f=3&t=7639

在產圖前先 TChart.Draw 到一個 TBitmap 再產圖,但在 Free 物件時會發生 System Error Code 5 拒絕存取。

不進行 TChart.Draw 就不會有這個問題,但就是圖檔不完整。

產圖在 Synchronize 進行就不用 TChart.Draw,產圖也都正常,但不想這樣寫。

想請問有什麼『System Error Code 5 拒絕存取』的處理方式,或注意的地方,謝謝。

Delphi XE 10.1
[code delphi]
procedure TfrmFormulaChart.SaveFormulaChartImage();
var
bmpChart: TBitmap;
wsChartFile: WideString;
begin
bmpChart := TBitmap.Create;
try
bmpChart.Width := self.Width;
bmpChart.Height := self.Height;
chtFormulaChart.Draw(bmpChart.Canvas, Rect(0, 0, bmpChart.Width, bmpChart.Height));
//bmpChart.SaveToFile(psImageFolder psMaxDate '_' psChartName '.bmp');

wsChartFile := psImageFolder psMaxDate '_' psChartName;
if (psImageFormat.CompareTo('PNG') = 0) then
TeeSaveToPNG(chtFormulaChart, wsChartFile '.png')
else if (psImageFormat.CompareTo('JPG') = 0) then
TeeSaveToJPEG(chtFormulaChart, wsChartFile '.jpg', -1, -1)
else if (psImageFormat.CompareTo('BMP') = 0) then
chtFormulaChart.SaveToBitmapFile(wsChartFile '.bmp');

finally
FreeAndNil(bmpChart);
end;
end;
[/code]
系統時間:2017-08-17 9:49:40
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!