Добрый всем день! Тут задался целью сделать прожку Код (Text): unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls, ShellAPI, ImgList, ShellCtrls; type TForm1 = class(TForm) ImageList1: TImageList; ListView1: TListView; ComboBox1: TComboBox; Edit1: TEdit; procedure FormCreate(Sender: TObject); procedure ComboBox1Select(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; LI: TListItem; FI: SHFILEINFO; I: Integer; Icon: TIcon; F: TSearchRec; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); var I: Integer; begin if CreateDir('Shortcut') = true then begin beep; ShowMessage('Первый запуск! Создана папка для работы!'); end; if DirectoryExists('Shortcut') = true then SetCurrentDir('Shortcut'); ComboBox1.Clear; I := FindFirst('*', FaDirectory, F); while I = 0 do begin if ((F.Attr and FaDirectory = FaDirectory) and (F.Name<>'.') and (F.Name<>'..')) then ComboBox1.Items.Add(F.Name); I := FindNext(F); end; FindClose(F); end; procedure TForm1.ComboBox1Select(Sender: TObject); begin Icon := TIcon.Create; I := FindFirst(ComboBox1.text + '\' + '*', FaAnyFile-faDirectory, F); ListView1.Clear; while I = 0 do begin if ((F.Attr and FaDirectory <> FaDirectory) and (F.Attr and FaVolumeId <> FaVolumeID)) then LI := ListView1.Items.Add; SHGetFileInfo(PChar(ComboBox1.Text + '\' + F.Name), 0, FI, SizeOf(FI), SHGFI_DISPLAYNAME); LI.Caption := FI.szDisplayName; SHGetFileInfo(PChar(ComboBox1.Text + '\' + F.Name), 0, FI, SizeOf(FI), SHGFI_ICON or SHGFI_LARGEICON); icon.Handle := FI.hIcon; LI.ImageIndex := ImageList1.AddIcon(Icon); DestroyIcon(FI.hIcon); I := FindNext(F); end; FindClose(F); end; end. Так вот, мне надо чтобы по двойному клику по созданной иконке в ListView запускалась оригинальная иконка находящаяся в папке с которой они создаются в ListView. Пробовал через ShellExecute, но незнаю как присвоить этой команде адрес ярлыка по которому был произведён даблклик в ListView, так что помогите плиз
MeLkiy Придется тебе завести массив, в котором будешь хранить полные пути к файлам. А еще лучше двумерный массив, чтобы хранить как пути к файлам, так и пути к папкам. Дело в том, что при вызове ShellExecute третий параметр - полный путь к файлу, а пятый параметр - путь к папке, в которой файл находится. удачи.