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

請問要如何抓取檔案的自己ICON圖示呢?

尚未結案
saam
初階會員


發表:61
回覆:75
積分:27
註冊:2003-03-03

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-03-31 10:28:35 IP:211.75.xxx.xxx 未訂閱
請問各位先進: 我想抓取任意檔案自己的ICON圖示,並把他放到 TImage上,請問要如何做到呢?    saam@kh2nd.com.tw
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-03-31 10:36:41 IP:218.16.xxx.xxx 未訂閱
Delphi 有一個範例有這個功能 C:\Program Files\Borland\DelphiX\Demos\ResXplor 你可以直接 run 這個範例來找取程式的 icon 及其他資源,或參考它的程式碼來運用在你自己的程式中。
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-03-31 10:51:45 IP:203.73.xxx.xxx 未訂閱
引言: 請問各位先進: 我想抓取任意檔案自己的ICON圖示,並把他放到 TImage上,請問要如何做到呢? saam@kh2nd.com.tw < face="Verdana, Arial, Helvetica"> saam 你好: 補充兩點,參考看看 (
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
saam
初階會員


發表:61
回覆:75
積分:27
註冊:2003-03-03

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-03-31 15:19:33 IP:211.75.xxx.xxx 未訂閱
謝謝二位先進: 可是使用ExtractIcon沒法抓執行檔和ICO檔外的ICON, C:\Program Files\Borland\DelphiX\Demos\ResXplor這個範例 我一執行就有錯誤,不知道問題出在那裏,後來我改用SHGetFileInfo 來做,發現有些檔案也是不到他的圖示,如副檔名為.htm的出現的是無 圖示的ICON. 附上我的程式如下 var info:SHFILEINFO; a:word; icon:TIcon; begin a:=0; icon:=TIcon.Create ; a:=SHGetFileInfo('D:\共用資料匣\index.htm',0,info,sizeof(info),SHGFI_USEFILEATTRIBUTES or SHGFI_ICON or SHGFI_SHELLICONSIZE or SHGFI_SYSICONINDEX); icon.Handle:=info.hIcon ; Image1.Picture.Icon :=icon; 請問我那錯了呢?
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-03-31 15:42:47 IP:218.16.xxx.xxx 未訂閱
不是錯在程式,而是錯在觀念 去找取外部檔的 Icon ,其本上就是到這個檔案的資源 (resources) 資料裡抽取裡面的資源。基本上 Windows 的程式(包括 dll)是有固定的格式去存取,所以才可以被其他程式(如ResXplor)存取。其他的檔案其本上沒固定的格式去儲存資料所以亦無固定的格式去存取。 HTML 檔只是純文字的檔案,沒包含ICON的,你在檔案總管看到的 ICON 只是代表這裡檔案是甚麼類形的檔案及需設開啟程式,跟本就不是它自己有個 ICON。有關的檔案類形設定可在檔案總管->工具->資料夾選項->檔案類形 裡設定。
saam
初階會員


發表:61
回覆:75
積分:27
註冊:2003-03-03

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-03-31 16:36:51 IP:211.75.xxx.xxx 未訂閱
感謝Justmade: 可是我如果去抓文字檔, 如 .txt的話 卻可以正常抓到他的圖示,使用是上面那個程式, 這是為什麼呢?
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-03-31 16:57:22 IP:218.16.xxx.xxx 未訂閱
SHGetFileInfo 並不是從 File 裡拿 Icon,而是問 Window Shell (SH 就是SHELL的簡寫) 該檔案應用那個 Icon 來顯示。 我執行你的程式,完全可拿到 htm 的圖示 (IE 的圖示),但一個預設使用 NetScape 的人,同一個檔便會拿到不同的 Icon 。 至於你不能拿到圖示,有幾個可能,你可 1. 看看你在檔案總管裡 .htm 是甚麼圖示。 2. 有沒有打錯路徑或字 3. 試試放在英文的路徑別在中文路徑。
banson1716
高階會員


發表:55
回覆:182
積分:167
註冊:2002-04-14

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-03-31 21:31:35 IP:61.223.xxx.xxx 未訂閱
抓取檔案的自己ICON, Exe, Dll 圖示 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=27872
saam
初階會員


發表:61
回覆:75
積分:27
註冊:2003-03-03

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-04-01 10:08:17 IP:211.75.xxx.xxx 未訂閱
感謝Justmade和banson1716 我使用SHGetFileInfo發現奇怪的現象,在公司無法顯示.htm的圖示, 但在自家的電腦卻正常, 不過如果使用如上面程式的中文路徑果真 不能顯示正確的圖示,不知為什麼? 感謝banson1716的範例,很精要 saam@kh2nd.com.tw
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-04-01 11:09:34 IP:218.16.xxx.xxx 未訂閱
因為老外們在開發時常以英文為標準沒考慮雙位元文字的問題。雖說己將絕大部份精況轉換為支援多位元文字,但還不時有些小地方有這個問題。所以,很多人都慣性地遇到不能解的問題而在中文名稱/路徑時,試試全改成英文看看,雖然不一定是這個問題,但儘可一試。
系統時間:2024-05-03 4:13:51
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!