Articles   Members Online:
-Article/Tip Search
-News Group Search over 21 Million news group articles.
-Delphi/Pascal
-CBuilder/C++
-C#Builder/C#
-JBuilder/Java
-Kylix
Member Area
-Home
-Account Center
-Top 10 NEW!!
-Submit Article/Tip
-Forums Upgraded!!
-My Articles
-Edit Information
-Login/Logout
-Become a Member
-Why sign up!
-Newsletter
-Chat Online!
-Indexes NEW!!
Employment
-Build your resume
-Find a job
-Post a job
-Resume Search
Contacts
-Contacts
-Feedbacks
-Link to us
-Privacy/Disclaimer
Embarcadero
Visit Embarcadero
Embarcadero Community
JEDI
Links
How to retrieve icons from the system image list Turn on/off line numbers in source code. Switch to Orginial background IDE or DSP color Comment or reply to this aritlce/tip for discussion. Bookmark this article to my favorite article(s). Print this article
29-Aug-02
Category
Shell API
Language
Delphi 2.x
Views
119
User Rating
No Votes
# Votes
0
Replies
0
Publisher:
DSP, Administrator
Reference URL:
DKB
			 Author: Tomas Rutkauskas

Having the system image list in a TImageList, how can I get the index for special 
icons like floppy disk, hard drive, removable drive, etc., which do not represent 
file types? I can see that these icons are actually present (for example, 11 = 
CD-ROM, 8 = Hard-Drive on my machine ...). But I would prefer not to use hard-coded 
constants.

Answer:

1   uses
2     ShellAPI;
3   var
4     sfi: TSHFileInfo;
5   begin
6     SHGetFileInfo("DUMMY.ABC", FILE_ATTRIBUTE_NORMAL, sfi, sizeof(sfi),
7       SHGFI_ICON or SHGFI_USEFILEATTRIBUTES);
8     Index := sfi.iIcon;
9   end;


By using the second parameter you can get icons for file system items that do not 
physically exist in the first parameter, which is not completely obvious in the 
help for SHGetFileInfo. For example.

10  SHGetFileInfo(" * .DOC", FILE_ATTRIBUTE_NORMAL, sfi, sizeof(sfi),
11    SHGFI_ICON or SHGFI_USEFILEATTRIBUTES);


gets the icon associated with DOC files. To get drives use
12  
13  SHGetFileInfo("A: \", FILE_ATTRIBUTE_NORMAL, sfi, sizeof(sfi),
14    SHGFI_ICON or SHGFI_USEFILEATTRIBUTES);

etc.

Note that this retrieves the LARGE icon.  See the help on getting small icon with other flags.

			
Vote: How useful do you find this Article/Tip?
Bad Excellent
1 2 3 4 5 6 7 8 9 10

 

Advertisement
Share this page
Advertisement
Download from Google

Copyright © Mendozi Enterprises LLC