全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1546
推到 Plurk!
推到 Facebook!

TMetaFileCanvas->Draw() 似乎有 BUG

缺席
herbert2
尊榮會員


發表:58
回覆:640
積分:894
註冊:2004-04-16

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-09-11 13:55:49 IP:211.72.xxx.xxx 訂閱
// Borland C++ Build 5
// TMetafileCanvas->Methods
// TMetafileCanvas::TMetafileCanvas->Example
/*
This example shows how to create or augment a metafile using a metafile
canvas object. This metafile can then be used to draw on the canvas of
another object such as a paintbox or a printer.}
*/
TMetafile *pMetafile = new TMetafile;
TMetafileCanvas *pCanvas = new TMetafileCanvas(pMetafile, 0);
pCanvas->Brush->Color = clRed;
pCanvas->Ellipse(0,0,100,100);
// ...
delete pCanvas;
Form1->Canvas->Draw(0,0,pMetafile); //1 red circle
/*
To add to an existing metafile image, create a metafile canvas and play
the source metafile into the metafile canvas:
*/
// 若不執行以下程式, pMetafile 的內容不會遺失.
TMetafileCanvas *pCanvas = new TMetafileCanvas(pMetafile, 0);
pCanvas->Draw(0,0,pMetafile);

/*
當 pMetafile 有百多個線條、文字、框線等時, 部分非最後執行也非位在靠近邊緣的
四方形框線, 竟會遺失底部線條 (上方其他框線正常, 其下方的其他線條也未遺失) ,
暨使不執行下面任一加畫其他線條或文字之指令, 結果仍有同樣的問題.
*/
/*
pCanvas->Brush->Color = clBlue;
pCanvas->Ellipse(100,100,200,200);
// ...
*/
delete pCanvas;
Form1->Canvas->Draw(0,0,pMetafile); // 1 red circle and 1 blue circle
// ...
delete pMetafile;
請問有那位高手, 能幫忙告知應如何解決此 BUG 嗎 ?

herbert2
尊榮會員


發表:58
回覆:640
積分:894
註冊:2004-04-16

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-09-19 23:40:30 IP:211.72.xxx.xxx 訂閱
經查 Graphic.pas 發覺它是呼叫 Windows API:
PlayEnhMetaFile() 與 CloseEnhMetaFile(),
再上 Google 及 MicroSoft 查詢,
卻未找到相關 BUG 報告,
看來是無解了.
編輯記錄
herbert2 重新編輯於 2008-09-19 23:41:16, 註解 無‧
herbert2 重新編輯於 2008-09-19 23:42:22, 註解 無‧
herbert2
尊榮會員


發表:58
回覆:640
積分:894
註冊:2004-04-16

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-09-20 02:09:04 IP:211.72.xxx.xxx 訂閱
逢山開路, 遇水架橋.
既然 Windows EnhMetaFile 之 API 測試結果有 BUG,
便改加一個新 MetaFile 繪製新的圖型與文字,
再把新舊兩個 MetaFile 疊繪至同一個 Canvas 上,
至少可以解決問題了.
系統時間:2024-03-28 18:04:22
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!