FileListBox之icon的問題 |
答題得分者是:senso
|
pmshkung
一般會員 發表:3 回覆:1 積分:0 註冊:2011-03-01 發送簡訊給我 |
|
老大仔
尊榮會員 發表:78 回覆:837 積分:1088 註冊:2006-07-06 發送簡訊給我 |
|
senso
高階會員 發表:5 回覆:126 積分:226 註冊:2003-11-27 發送簡訊給我 |
可以用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 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |