Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2003.12.19;
Скачать: [xml.tar.bz2];

Вниз

Как использовать иконки, зарегистрированные...   Найти похожие ветки 

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.007 c
14-62201
den_c
2003-11-26 23:06
2003.12.19
Инсталяция плагина через Internet Explorer


3-61929
alst
2003-11-27 08:42
2003.12.19
Удаление записи из БД Interbse.


6-62173
Dmitry V. Averuanov
2003-10-07 14:43
2003.12.19
Как узнать имя хоста по его IP


1-62145
ДмитрийБ
2003-12-07 15:24
2003.12.19
InstallShield & BDE


3-61902
Murad
2003-11-27 12:03
2003.12.19
Backup в MSSql





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский