Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.51 MB
Время: 0.031 c
1-62113
Krys
2003-12-08 14:11
2003.12.19
Обработка нажатий клавиш мыши


14-62216
REA
2003-11-26 15:38
2003.12.19
SMS


1-62039
UNick
2003-12-06 08:40
2003.12.19
Как мне добавить кнопку в заголовок окна?


14-62248
Fredericco
2003-11-15 21:54
2003.12.19
Отчет о разведке NYMMP 2003.


14-62238
Serg
2003-11-25 14:01
2003.12.19
Подскажите где взять компоненты ???