Napisałem na szybko program, który ma wydobyć te ikone i narysowac ja na canvasie formy.
Oto caly unit:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, shellapi;
type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
OpenDialog: TOpenDialog;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
if openDialog.execute then edit1.Text:= openDialog.FileName;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
ico: TIcon;
ico_handle: THandle;
begin
ico_handle:=extractIcon(Hinstance, PChar(edit1.text), 32);
ico:=TIcon.Create;
ico.Handle:=ico_handle;
form1.Canvas.Draw(10, 50, ico);
end;
end.
Niestety nie działa :]. Nie zostaje wyświetlona ikona w miejscu o współrzędnych x:10 y:50...