Відображення іконки асоційованого файлу
Є значок містить два зображення. одне для відображення самого exe файлу, а друга для відображення асоційованого з програмою файлу. іконку прикріпив до проекту через опції проекту. у реєстрі створив ключ DefaultIcon і в ньому параметр "За замовчуванням" зі значенням "шлях до exe файлу",0. сам exe файл відображається з правильною іконкою а ось асоційовані файли відображаються з цією ж іконкою. як вказати в реєстрі, що асоційовані файли відображати з другого зображення в ico файлі? пробував змінювати значення на "шлях до exe файлу",1. та іконка не змінюється.
> шлях до exe файлу",1. але іконка не змінюється1 - це індексокремоїіконки у файлі ресурсів
> 1 - це індекс окремої іконки у файлі ресурсівааа. зрозумів.. тобто. треба другу іконку прикріпити до проекту і вказати в реєстрі 1 .
що я наплутав. іконки подекуди змінилися. (( . як вказати в ресурсах якщо кілька іконок.. що ця іконка для exe файлу?)
Втім розібрався я з цим питанням ... якщо кому цікаво ось моє рішення. Заходимо в Delphi в меню Project->Resources (у мене цей пункт є в D7? у кого то чомусь немає. якщо ні то додаємо ресурс через brcc32.exe) і додамо необхідну іконку. Якщо у вас вже додана іконка до додатка, то називаємо доданий ресурс з літери, яка по алфавіту йде після латинської літери M (MainIcon), наприклад, N1. Тепер залишається вказати в реєстрі системи якусь іконку відображати на ваш тип файлу. наведу готову процедуру: procedure REGext; - реєстрація розширення в системі var reg:TRegistry; tmp:string; begin reg:=Tregistry.Create; try reg.RootKey:=HKEY_CLASSES_ROOT; reg.CreateKey(".tst"); reg.OpenKey(".tst",true); reg.WriteString("","TST.Document"); reg.CloseKey; hide; MessageDlg("Файл *.tst успішно зареєстрований в системі!", mtInformation, [mbOk], 0); except MessageDlg("Помилка при реєстрації розширення"+#13 +"Можливо у вас недостатньо прав для внесення змін до реєстру", mtError, [mbOk], 0); abort; end; reg.Free; end;
Для скасування реєстрації в системі наступна процедура: