Solved

Use Windows Explorer icons in my Delphi application.

Posted on 2014-09-08
8
574 Views
Last Modified: 2014-09-17
Writing a cool little feature on a Delphi form with TTreeView.
Want to select, load and use Windows Explorer icons in my application, for various nodes.
This is a data tree, not file tree. Just want to use icons the users are familiar with.
0
Comment
Question by:SurferJoe
8 Comments
 
LVL 100

Expert Comment

by:mlmcc
ID: 40312098
What issue are you having?

mlmcc
0
 
LVL 4

Author Comment

by:SurferJoe
ID: 40312136
Load and use Windows Explorer or DLL icons in my application.
0
 
LVL 4

Author Comment

by:SurferJoe
ID: 40312150
Found these  2 windows SDK fucntions. Could use a code example of how to actully use them. unless there is a better way.

{ // SDK #1
The ExtractAssociatedIcon function returns the handle of an indexed icon found in a file or an icon found in an associated executable file.

HICON ExtractAssociatedIcon(

    HINSTANCE hInst,      // application instance handle
    LPTSTR lpIconPath,      // path and filename of file for which icon is wanted
    LPWORD lpiIcon       // pointer to icon index
   );
}

{ SDK #2
he ExtractIcon function retrieves the handle of an icon from the specified executable file, dynamic-link library (DLL), or icon file.

HICON ExtractIcon(

    HINSTANCE hInst,      // instance handle
    LPCTSTR lpszExeFileName,      // filename of file with icon
    UINT nIconIndex       // index of icon to extract
   );
}
0
Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

 
LVL 4

Accepted Solution

by:
SurferJoe earned 0 total points
ID: 40312713
This is one way to do it;
Found this code on VBForums.com, which I believe was actually plagiarized from Torry's Delphi Pages.

uses
  shellApi;

procedure TForm1.Button1Click(Sender: TObject);
const
  ExtrFileName = {Enter FileName.dll here};
var
  icon: TIcon;
  NumberOfIcons, i: Integer;
begin
  icon := TIcon.Create;
  try
    // Get the number of Icons
    NumberOfIcons := ExtractIcon(Handle, PChar(ExtrFileName), UINT(-1));
    ShowMessage(Format('%d Icons', [NumberOfIcons]));
    // Extract the first 5 icons of DLL
    for i := 1 to 5 do
    begin
      // Extract an icon
      icon.Handle := ExtractIcon(Handle, PChar(ExtrFileName), i);
      // Draw the icon on your form
      DrawIcon(Form1.Canvas.Handle, 10, i * 40, icon.Handle);
    end;
  finally
    icon.Free;
  end;
end;
0
 
LVL 26

Assisted Solution

by:Sinisa Vuk
Sinisa Vuk earned 500 total points
ID: 40312779
Store your icons (extracted from exe) in timagelist component. Then it is quite easy to connect treeview with this imagelist.
Similar question was before on EE
0
 
LVL 9

Expert Comment

by:arioh
ID: 40321945
I think you should check these functions from the Windows SDK:
EnumResourceNames
LoadImage
0
 
LVL 4

Author Closing Comment

by:SurferJoe
ID: 40327554
Thank you Sinisa Vuk, your comment was very helpful in the next step, the code example is what I really needed.
All the best, Greg
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Whether you've completed a degree in computer sciences or you're a self-taught programmer, writing your first lines of code in the real world is always a challenge. Here are some of the most common pitfalls for new programmers.
A short article about problems I had with the new location API and permissions in Marshmallow
An introduction to basic programming syntax in Java by creating a simple program. Viewers can follow the tutorial as they create their first class in Java. Definitions and explanations about each element are given to help prepare viewers for future …
In this seventh video of the Xpdf series, we discuss and demonstrate the PDFfonts utility, which lists all the fonts used in a PDF file. It does this via a command line interface, making it suitable for use in programs, scripts, batch files — any pl…

910 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

24 Experts available now in Live!

Get 1:1 Help Now