Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
?
Solved

Use Windows Explorer icons in my Delphi application.

Posted on 2014-09-08
8
Medium Priority
?
738 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:Greg Rowland
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
8 Comments
 
LVL 101

Expert Comment

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

mlmcc
0
 
LVL 4

Author Comment

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

Author Comment

by:Greg Rowland
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
The top UI technologies you need to be aware of

An important part of the job as a front-end developer is to stay up to date and in contact with new tools, trends and workflows. That’s why you cannot miss this upcoming webinar to explore the latest trends in UI technologies!

 
LVL 4

Accepted Solution

by:
Greg Rowland 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 27

Assisted Solution

by:Sinisa Vuk
Sinisa Vuk earned 2000 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:Greg Rowland
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

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

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

This article will show how Aten was able to supply easy management and control for Artear's video walls and wide range display configurations of their newsroom.
If you are a mobile app developer and especially develop hybrid mobile apps then these 4 mistakes you must avoid for hybrid app development to be the more genuine app developer.
In this fifth video of the Xpdf series, we discuss and demonstrate the PDFdetach utility, which is able to list and, more importantly, extract attachments that are embedded in PDF files. It does this via a command line interface, making it suitable …
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…
Suggested Courses

664 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