Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 3 апреля!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

БОЛЬШОЙ FAQ ПО DELPHI



Как в Delphi изменить иконку у директории

Обычно, для изменения вида папок в Проводнике используется файл desktop.ini.

Сперва необходимо создать файл Desktop.ini и поместить в ту директорию, иконку которой мы хотим изменить. В программе для этого можно воспользоваться классом TIniFile и передать в него путь директории.

Теперь нам необходимо записать в .ini файл пары <key>=<value>. В Desktop.ini эти пары выглядят следующим образом (самое главное, это указать иконку и её индекс):


 [.ShellCLassInfo]
 IconFile=C:LocationofFolder.ico
 IconIndex=0
 InfoTip=Delphi is the coolest IDE ever!
 // Значение IconFile это путь к .dll, .ico, или .exe. В Delphi это выглядит так:
 
 
 with iniFile do
 begin
   // Следующие строки меняют иконку
   WriteString('.ShellClassInfo', 'IconFile', editIconPath.Text);
   WriteString('.ShellClassInfo', 'IconIndex', editIconIndex.Text);
   WriteString('.ShellClassInfo', 'InfoTip', 'Use Delphi because it rocks!');
   UpdateFile;
 end;
 

Теперь, когда файл Desktop.ini создан, необходимо изменить атрибуты папки и добавить системный флаг. Чтобы иконка отображалась правильно, желательно установить системный флажёк как для папки, так и для её родителя. Для установки атрибутов воспользуемся функцией SetFileAttribue():


 //Устанавливаем системные атрибуты для папки и её родителя
 SetFileAttributes(PChar(edFolderPath.Text), FILE_ATTRIBUTE_SYSTEM);
 if Length(edFolderPath.Text) > 3 then //Если директория не корневая...
 begin
   //функция LastChar возвращает индекс последнего вхождения символа
   //в строку. Этот способ позволяет быстро получить путь родительской
   //директориии, если, конечно, директория не является корневой на диске..
   tempDir := Copy(edFolderPath.Text, 1, LastChar(edFolderPath.Text, '') - 1);
   SetFileAttributes(PChar(tempDir), FILE_ATTRIBUTE_SYSTEM);
 end;
 

Теперь можно открыть Проводник и посмотреть в левой панели на значёк директории.




<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ



Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS