Приветствую Вас Гость | RSS

Меню сайта

Реклама

Категории раздела
Bitmap [50]
Canvas [0]
DirectX и DelphiX [39]
GIF [3]
ICO [24]
JPEG [14]
MetaFile [6]
OpenGL [9]
ScreenSaver и ScreenMate [13]
Векторная графика [2]
Графика [37]
Изображения [0]
Картография [6]
Компоненты и Графика [0]
Создание игр [17]
Цвета и Палитра [0]
Шрифты [0]

Наш опрос
Какие компоненты добавлять больше?
Всего ответов: 49

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Форма входа

Главная » Статьи » Графика и Игры » ICO

Получение иконки для зарегистрированного расширения по его имени
{ **** UBPFD *********** by delphibase.endimus.com ****
>> Получение иконки для зарегистрированного расширения по его имени

Функции в качестве параметра передаётся имя файла и в случае удачного выполнения
она (функция) возвращает handle'р иконки (HICON). В случае, если в реестре небыло
найдено расширения предложеного файла, функция возвращает 0.

Также при успешном выполнении необходимо освободить хендлер. Для этого используется
функция DestroyIcon(Handle:HICON).

Зависимости: модуль Registry, модуль ShellAPI, модуль SysUtils и стандартные
функции Pos, Delete, Copy, ExtractFileExt, ExtractIcon, StrToInt.

Автор: Poirot, poirot@rol.ru, Нижний Новгород
Copyright: Poirot (частично из Delphi 5. Руководство разработчика)
Дата: 16 июня 2002 г.
***************************************************** }


function GetRegistryIconHandle(FileName: string): HICON;
var
R: TRegistry;
Alias, //псевдвним для расширения в реестре
IconPath: string; //путь для файла с иконкой
IconNum, //номер иконки в файле
QPos: Integer; //позиция запятой в записи реестра
begin
IconNum := 0;

R := TRegistry.Create;

try
R.RootKey := HKEY_CLASSES_ROOT;

//чтение псевданима
if R.OpenKey('\' + ExtractFileExt(FileName), True) then
Alias := R.ReadString('');
R.CloseKey;

//чтение записи об иконке
if R.OpenKey('\' + Alias + '\DefaultIcon', True) then
IconPath := R.ReadString('');
R.CloseKey;

//поиск запятой
QPos := Pos(',', IconPath);

//чтение номера иконки в файле если она имеется
if QPos <> 0 then
begin
IconNum := StrToInt(Copy(IconPath, QPos + 1, 4));
IconPath := Copy(IconPath, 1, QPos - 1)
end;

finally
R.Free;
end;

//передача хендлера иконки как рещультат выполнения
Result := ExtractIcon(hInstance, PChar(IconPath), IconNum);
end;
Категория: ICO | Добавил: Angel (12.07.2008)
Просмотров: 453 | Рейтинг: 0.0/0
  Delphi Lab   Главная   Регистрация   Вход  
Интересная Цитата

Поиск

Магазин


Copyright MyCorp © 2025 Хостинг от uCoz