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

FileListBox之icon的問題

答題得分者是:senso
pmshkung
一般會員


發表:3
回覆:1
積分:0
註冊:2011-03-01

發送簡訊給我
#1 引用回覆 回覆 發表時間:2011-03-01 18:51:21 IP:124.155.xxx.xxx 訂閱


1.問題,如圖片所敘。在FileListBox中,可以藉由將ShowGlyphs設為true,可以有檔案icon出現,
若要將其更改程Windows的格式,不知是否可以?

2.如果不行,那是否有別的方法可以實作出來?

謝謝大家!
編輯記錄
pmshkung 重新編輯於 2011-03-01 03:51:44, 註解 無‧
老大仔
尊榮會員


發表:77
回覆:835
積分:1082
註冊:2006-07-06

發送簡訊給我
#2 引用回覆 回覆 發表時間:2011-03-02 09:18:11 IP:59.120.xxx.xxx 未訂閱
我沒記錯的話
好像都是內建的樣子@@
要嘛就改用ShellListView
但相關元件就得跟著變動
要嘛就要找3rd元件了吧我猜>"<
===================引 用 pmshkung 文 章===================


1.問題,如圖片所敘。在FileListBox中,可以藉由將ShowGlyphs設為true,可以有檔案icon出現,
若要將其更改程Windows的格式,不知是否可以?

2.如果不行,那是否有別的方法可以實作出來?

謝謝大家!
senso
高階會員


發表:5
回覆:126
積分:226
註冊:2003-11-27

發送簡訊給我
#3 引用回覆 回覆 發表時間:2011-03-03 16:02:01 IP:61.219.xxx.xxx 訂閱
可以用ListView+ImageList+SHGetFileInfo來做,
參考http://delphi.ktop.com.tw/board.php?cid=30&fid=71&tid=50626#2

[code cpp]
void __fastcall TForm1::Button1Click(TObject *Sender)
{
//FileListBox1->Directory="D:\\";
ListView1->Clear();
ImageList1->Clear();
ImageList1->Width = 16;
ImageList1->Height = 16;
ListView1->SmallImages = ImageList1;
ListView1->ViewStyle = vsList; //vsIcon 大圖示的話,上面寬高要改32*32
AnsiString path = FileListBox1->Directory;
path = (path.Length()==3)?path.SubString(1,path.Length()-1):path; //磁碟目錄會有"/"

for (int i=0; i < FileListBox1->Count; i ) {
TListItem *item = ListView1->Items->Add();
item->Caption = FileListBox1->Items->Strings[i];
AnsiString filename = path "\\" FileListBox1->Items->Strings[i];
//取得icon
SHFILEINFO info;
SHGetFileInfo((filename).c_str(), 0, &info, sizeof(info),
SHGFI_ICON | SHGFI_SMALLICON); //SHGFI_LARGEICON 大圖示 SHGFI_SMALLICON
//儲存icon
TIcon *icon = new TIcon();
icon->Handle = info.hIcon;
item->ImageIndex = ImageList1->AddIcon(icon);
DestroyIcon(info.hIcon);
}
}
[/code]

另外有兩篇用指定imagelist->handle的方式,我try不出來
http://delphi.ktop.com.tw/board.php?cid=168&fid=914&tid=84119#3
http://delphi.ktop.com.tw/board.php?cid=168&fid=914&tid=25911#13


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