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

能否幫小弟看一下,為何第二個JPEG圖秀不出來?

答題得分者是:william
danielj
初階會員


發表:65
回覆:135
積分:40
註冊:2003-06-11

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-07-11 09:16:07 IP:61.220.xxx.xxx 未訂閱
小弟又來發問了,因為版上實在是有太多的高手,而且都願意撥冗協助小弟的難題,讓小弟獲益匪淺,今日再來打擾,也希望眾家大姐大哥再相助,先謝啦! 小弟這回想以最基本的方式叫出JPEG圖檔並顯示,但是不知何故,第一個可以顯示,但是第二個就顯示不出來,但是我去看第二個的寬高資料都是正常的,請高手開釋一下吧,謝啦! 小弟的程式碼如下: void __fastcall TForm1::Button1Click(TObject *Sender) { OpenDialog1->Filter = "JPEG檔案|*.jpg"; if (OpenDialog1->Execute()) { TMemoryStream *myStream = new TMemoryStream; TJPEGImage *jpg1 = new TJPEGImage(); TJPEGImage *jpg2 = new TJPEGImage(); AnsiString file_name = OpenDialog1->FileName ; AnsiString FileExt = ExtractFileExt(file_name); if (FileExt == ".jpg" || FileExt == ".jpeg") { jpg1->LoadFromFile(file_name); Form1->Canvas->Draw(0,0,jpg1); jpg1->SaveToStream(myStream); myStream->Position = 0; jpg2->LoadFromStream(myStream); Form2->Canvas->Draw(0,0,jpg2); Form2->Show(); delete jpg1; delete jpg2; delete myStream; } } }
william
版主


發表:66
回覆:2535
積分:3048
註冊:2002-07-11

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-07-11 09:43:10 IP:147.8.xxx.xxx 未訂閱
You draw before showing the form... swap the 2 lines as: Form2->Show(); Form2->Canvas->Draw(0,0,jpg2); // draw only after showing the form Since the default paint method of the form should clear the image you draw on its canvas.
danielj
初階會員


發表:65
回覆:135
積分:40
註冊:2003-06-11

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-07-11 13:34:07 IP:61.220.xxx.xxx 未訂閱
那麼第一個圖能出來的原因是,原本Form1一開始就會show出來了,所以不用先寫 Form1->Show(); 也可以看到圖囉?
william
版主


發表:66
回覆:2535
積分:3048
註冊:2002-07-11

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-07-11 13:46:55 IP:147.8.xxx.xxx 未訂閱
引言: 那麼第一個圖能出來的原因是,原本Form1一開始就會show出來了,所以不用先寫 Form1->Show(); 也可以看到圖囉?
Yes, but a repaint of the form will erase the image. You may want to place a TImage on the form and draw on its canvas. TImage will store the image in an internal bitmap and it can repaint itself.
danielj
初階會員


發表:65
回覆:135
積分:40
註冊:2003-06-11

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-07-16 09:04:27 IP:61.220.xxx.xxx 未訂閱
多謝william大哥的指導! 我試過了,真的是這樣…
系統時間:2024-04-29 5:54:39
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!