ActiveX+QuickRep如何印Server端的圖片(是圖檔,非資料欄位) |
缺席
|
star
初階會員 發表:37 回覆:93 積分:36 註冊:2002-07-18 發送簡訊給我 |
我採用ActiveX+QuickReport的方法印表.
有個欄位是圖檔的檔名,要如何用TQRImage顯示圖片?
例:圖檔位於http://192.1.1.2:8888/images/aaa.jpg
試過用IdHTTP.Get方法,但是會有Error: HTTP/1.1 404 File not found
該如何解?
var fs : TFileStream;
...
try
fs := TFileStream.Create('c:\a.jpg',fmCreate);
IdHTTP1.Get('http://192.1.1.2:8888/images/aaa.jpg', fs);//Trace到這行有Error
QRImage1.Picture.LoadFromFile('c:\a.jpg');
finally
fs.Free;
end;
Sorry,此文在報表區發問過,再到此尋求網際網路方面的高手相助!
|
star
初階會員 發表:37 回覆:93 積分:36 註冊:2002-07-18 發送簡訊給我 |
我發現Error: HTTP/1.1 404 File not found應該是權限的問題.
在開放權限後已經可以Get到檔案並且存到client端的c:\a.jpg中.
但是QRImage1.Picture.LoadFromFile('c:\a.jpg');會出現另一個訊息如下:
Cannot open file "c:\a.jpg". The process cannot access the file beacuse it is being used by another process.
是不是這個FileStream該再開放什麼樣的Share Mode嗎?
要如何作, 不知各位有何建議? 發表人 - star 於 2003/08/21 12:08:40
|
star
初階會員 發表:37 回覆:93 積分:36 註冊:2002-07-18 發送簡訊給我 |
改為這樣即可 var fs : TFileStream;
...
try
fs := TFileStream.Create('c:\a.jpg',fmCreate);
try
IdHTTP1.Get('http://192.1.1.2:8888/images/aaa.jpg', fs);
except //最好加上except, 以防File not found
end;
finally
fs.Free;
end; 這行寫在fs.Free之後才可以
QRImage1.Picture.LoadFromFile('c:\a.jpg'); 至於當a.jpg是null時的exception就自己寫囉!
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |