Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.02.2010, 19:52   #1
D_E_N
Форумчанин
 
Регистрация: 04.05.2009
Сообщений: 149
По умолчанию конвертация из hicon в ticon

Привет всем. нашел в инете код который функции в качестве параметра передаётся имя файла и в случае удачного выполнения
она возвращает handle'р иконки (HICON). а мне хотелось бы как нить перегнать его в ticon подскажите как сделать. заранее спасибо.
Код:
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;
D_E_N вне форума Ответить с цитированием
Старый 01.02.2010, 21:05   #2
D_E_N
Форумчанин
 
Регистрация: 04.05.2009
Сообщений: 149
По умолчанию

спасибо. разобрался.
var
icon:ticon;
begin
con:=ticon.Create;

icon.Handle:=GetRegistryIconHandle( 'win.ini');
Form2.Icon:=icon;
D_E_N вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Конвертация фунтов freeuser Общие вопросы C/C++ 2 28.01.2010 10:33
Конвертация Delphi->C# templllar Помощь студентам 0 21.12.2009 11:08
Конвертация файла в БД Mixasik PHP 3 21.11.2009 21:35
Как сохранить hIcon в TBlobField? k1r1ch БД в Delphi 0 08.08.2009 05:42
конвертация db в dbf? Eduard БД в Delphi 2 20.09.2007 13:24