Текущий архив: 2003.12.19;
Скачать: CL | DM;
Вниз
Как использовать иконки, зарегистрированные... Найти похожие ветки
← →
Knight (2003-11-22 15:19) [0]... за каким-то типом файла? Поискал, но не нашёл... плохо искать если не знаешь, как это точно называется.
← →
Nikolay M. (2003-11-22 17:08) [1]В проводнике Windows: Tools-Folder Options-File Types-Нужное расширение-Advanced
?
Программно вытягивается из реестра.
← →
Knight (2003-11-22 23:09) [2]А специальных функций нет? У меня в программе, используется просмотр содержимого папок, выводится в ListView, охота иконки подключить... Shell использовать не получиться.
← →
Игорь Шевченко (2003-11-22 23:13) [3]Что же это за прикол такой будет, любопытно ? ;)
← →
Knight (2003-11-22 23:31) [4]>> Игорь Шевченко © (22.11.03 23:13) [3]
> Что же это за прикол такой будет, любопытно ? ;)
А вот это не прикол, а полезная программа... на работу надо :)
← →
Игорь Шевченко (2003-11-22 23:39) [5]А чем SHGetFileInfo не нравится ?
← →
Knight (2003-11-23 00:09) [6]>> Игорь Шевченко © (22.11.03 23:39) [5]
> А чем SHGetFileInfo не нравится ?
Самое то... Спасибо, вопрос закрыт :)
← →
Knight (2003-11-23 22:34) [7]Поспешил...
Для локального работает, но нужно как в проводнике в File Types, чтоб получить hIcon по типу, т.е. .doc, folder и т.п. т.к. путь на файл указать можно только на локальный, а на сетевую машину, на нерасшаренный диск, указать довольно сложно.
← →
Knight (2003-11-23 23:47) [8]Неужели только через реестр?
← →
Knight (2003-11-24 14:26) [9]Что? Никто не знает?
← →
Rouse_ (2003-11-24 17:40) [10]
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
);
Желаю успехов
← →
Knight (2003-11-24 19:47) [11]>> Rouse_ © (24.11.03 17:40) [10]
> path and filename of file for which icon is wanted
>> Knight © (23.11.03 22:34) [7]
> путь на файл указать можно только на локальный, а на сетевую
> машину, на нерасшаренный диск, указать довольно сложно.
???
← →
Rouse_ (2003-11-24 19:57) [12]Ты проверь, должно работать, так как извлечение идет из реестра и ты увидишь туже иконку что и в проводнике...
Желаю успехов
← →
Knight (2003-11-24 20:46) [13]SHGetFileInfo работает, хотя бы в случае когда путь определён, а тут снова столкнулся с непонятным - HINSTANCE, который давно уже избегаю, т.к. в своих книгах, я ответа так и не нашёл... есть множество функций куда он передается, но нашёл только несколько где он получается и все они Create... New... и т.п. Функция GetWindowLong с GWL_HINSTANCE, что-то возвращает, но подставил сейчас это "что-то" в ExtractAssociatedIcon, результата никакого не получил. Среди свойств такого нет ни у Form, ни у Application. Где-то уже раз спрашивал, как его узнать для своего приложения, но вопрос остался без ответа. Может кто объяснит?
← →
Rouse_ (2003-11-24 21:05) [14]Просто подставляй HInstance ;)
Желаю успехов
← →
Knight (2003-11-24 22:44) [15]Вот где собака то порыта... Я искал Instance и думал, что это имеет отношение к Form или Application, а оно hInstance и в SysInit... Спасибо :)
А функция ExtractAssociatedIcon всё равно не работает ни как... возвращает hIcon=0, хотя и путь определён, и иконка есть, и SHGetFileInfo её выдаёт.
procedure TForm1.Button1Click(Sender: TObject);
var i:Word;
h:hIcon;
begin
i:=0;
h:=ExtractAssociatedIcon(HInstance, "c:\w\NOTEPAD.EXE", i);
Image1.Picture.Icon.Handle:=h;
end;
procedure TForm1.Button2Click(Sender: TObject);
var I:SHFILEINFO;
begin
SHGetFileInfo("c:\w\NOTEPAD.EXE",0,I,0,SHGFI_ICON);
Image1.Picture.Icon.Handle:=I.hIcon;
end;
Что не так?
← →
Knight (2003-11-24 23:07) [16]Вобще ничего не понимаю, может кто пояснит, почему?
procedure TForm1.Button1Click(Sender: TObject);
var I:Word;
S1,S2:String;
P:PChar;
begin
I := 1;
S1:=ExtractFilePath(Application.ExeName);
S2:="D:\complete\Borland\Delphi5\Projects\";
if S1=S2 then begin
P:=PChar(S1);
Image1.Picture.Icon.Handle:=ExtractAssociatedIcon(HInstance,P,I);
P:=PChar(S2);
Image2.Picture.Icon.Handle:=ExtractAssociatedIcon(HInstance,P,I);
end;
end;
В первом иконка есть, а во втором нет... меняю
S2:=ExtractFilePath(Application.ExeName);
S1:="D:\complete\Borland\Delphi5\Projects\";
В первом иконки нет, а во втором есть... %)
← →
Knight (2003-11-24 23:18) [17]В чём разница между S1 и S2, если S1=S2? У меня в голову приходит, только...
Стою на асфальте,
В лыжи обутый.
То ли лыжи не едут
То ли я... %)
← →
Knight (2003-11-25 10:26) [18]Удалено модератором
Примечание: Создание пустых сообщений
Страницы: 1 вся ветка
Текущий архив: 2003.12.19;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.009 c