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

png.LoadFromFile('c:\k1.png')所產生的問題

答題得分者是:pcboy
ucdesign2
一般會員


發表:24
回覆:33
積分:11
註冊:2002-10-23

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-09-11 11:15:23 IP:211.23.xxx.xxx 未訂閱
請教前輩:
我的目的是從網路上抓png檔然後在image元件上顯示.過程中有使用Pngimage元件.

貼上部份程式
procedure TForm1.Button3Click(Sender: TObject);
var
fs: TFileStream;
begin
try
fs := TFileStream.Create('c:\k1.png', fmCreate);
IdHTTP1.Get('http://tw.chart.yahoo.com/t/d/k/1711.png', fs);
finally
fs.Free;
Image1.Picture.LoadFromFile('c:\k1.png');
執行到上一行出現下列錯誤訊息!請前輩指點如何修正錯誤!
---------------------------------------------------------------------------------------------------------
Cannot open file "c:\k1.png".程序無法存取檔案,因為檔案正由另一個程序使用.
----------------------------------------------------------------------------------------------------------
end;
end;

編輯記錄
ucdesign2 重新編輯於 2007-09-11 14:08:30, 註解 無‧
ucdesign2 重新編輯於 2007-09-11 14:11:06, 註解 無‧
pcboy
版主


發表:177
回覆:1838
積分:1463
註冊:2004-01-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-09-11 12:08:20 IP:61.220.xxx.xxx 訂閱
你這樣問有可能無人能答
因為別人未必有Pngimage元件, 就算有, 未必和你是同一套 or 同一版
建議你將Pngimage元件下載地方公布出來, 或在發問的時候直接以附件方式附上, 
並說明可用的 Delphi 版本和安裝法
單以錯誤訊息來看 : "因為檔案正由另一個程序使用"
你有另外一個程式正在開啟該圖檔, 請將該程式關閉
------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案!

子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問!
編輯記錄
pcboy 重新編輯於 2007-09-11 13:41:08, 註解 無‧
shunchia63
高階會員


發表:26
回覆:141
積分:198
註冊:2007-05-22

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-09-11 12:20:17 IP:61.62.xxx.xxx 訂閱

跟JPEG一樣宣告後即可載入

try this.

uses pngimage;


宣告
PNGImage:Timage;


載入
PNGImage.Picture.LoadFromFile('c:\test.png');






編輯記錄
shunchia63 重新編輯於 2007-09-11 12:31:44, 註解 無‧
ucdesign2
一般會員


發表:24
回覆:33
積分:11
註冊:2002-10-23

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-09-13 15:17:29 IP:211.23.xxx.xxx 未訂閱
問題已解決!
因為我同時下幾個檔案!
fs := TFileStream.Create('c:\k1.png', fmCreate);
IdHTTP1.Get('http://tw.chart.yahoo.com/t/d/k/1711.png', fs);
fs := TFileStream.Create('c:\k2.png', fmCreate);
IdHTTP1.Get('http://tw.chart.yahoo.com/t/d/k/9911.png', fs);
fs := TFileStream.Create('c:\k3.png', fmCreate);
IdHTTP1.Get('http://tw.chart.yahoo.com/t/d/k/9111.png', fs);
fs.free;
Image1.Picture.LoadFromFile('c:\k1.png'); // <-- error!
正確寫法如下:
fs := TFileStream.Create('c:\k1.png', fmCreate);
IdHTTP1.Get('http://tw.chart.yahoo.com/t/d/k/1711.png', fs);
fs.free;
fs := TFileStream.Create('c:\k2.png', fmCreate);
IdHTTP1.Get('http://tw.chart.yahoo.com/t/d/k/9911.png', fs);
fs.free;
fs := TFileStream.Create('c:\k3.png', fmCreate);
IdHTTP1.Get('http://tw.chart.yahoo.com/t/d/k/9111.png', fs);
fs.free;
Image1.Picture.LoadFromFile('c:\k1.png'); //

wameng
版主


發表:31
回覆:1336
積分:1188
註冊:2004-09-16

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-09-13 20:45:24 IP:61.31.xxx.xxx 訂閱
PCBOY 版主答覆是正確的。

為什麼總是有些人吝嗇給予。
總是以為別人是欠你,是應該的。

唉!辛苦解答問題,只求簡單的謝謝都沒有。
真是廉價啊!

有感言之。
ucdesign2
一般會員


發表:24
回覆:33
積分:11
註冊:2002-10-23

發送簡訊給我
#6 引用回覆 回覆 發表時間:2007-09-14 11:50:14 IP:211.23.xxx.xxx 未訂閱
謝謝版主的指教:
可能我太專注解決這個腦人的問題!一時疏忽請見諒:)
PCBOY 版主雖未正確寫出解決方法!但至少方向是正確!
自助者,人助之!
===================引 用 wameng 文 章===================
PCBOY 版主答覆是正確的。

為什麼總是有些人吝嗇給予。
總是以為別人是欠你,是應該的。

唉!辛苦解答問題,只求簡單的謝謝都沒有。
真是廉價啊!

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