Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.16;
Скачать: CL | DM;

Вниз

Запись иконок в файл   Найти похожие ветки 

 
Lexius   (2004-05-01 14:59) [0]

Необходимо создать файл, в котором должно содержаться, какое-то кол-во иконок. Эти иконки далее должны выбираться при смене ее самой у ярлыка. Наподобии как DLL или EXE файлы с множеством иконок в них.


 
DVM ©   (2004-05-01 17:39) [1]


> Наподобии как DLL или EXE файлы с множеством иконок в них.

Ну так и делай dll. В ресурс пихаешь иконки, ресурс сам пихаешь в dll. Расширение dll можно и поменять.


 
Ormada ©   (2004-05-01 19:43) [2]

юзай TFileStream заливай через поток в файл и фсё... могу кинуть пример если чё...


 
Lexius   (2004-05-02 10:27) [3]

Ormada кинь примерчик плз.


 
Юрий Зотов ©   (2004-05-02 11:32) [4]

> Lexius

Вы значительно сэкономите свои время и труд, если последуете совету [1]. Заодно, при этом Вы заведомо избавитесь от возможных ошибок.


 
Lexius   (2004-05-02 11:54) [5]

Уважаемый, Юрий Зотов.
Программа у меня должна дописывать иконки, во время своей работы в некий файл, делается это для эконимии места на винте, так-как количество иконок можеть быть огромным.
т.е. Имеется файл с иконками, запускаем программу, выполняем некие действия, программа дописывает новые иконки в данный файл.
Как программно создать файл, ресурса я знаю, а как его в какое-то место запихнуть - нет, если подскажите буду благодарен!
Чисто из файла-ресурса explorer иконки не видит.


 
Юрий Зотов ©   (2004-05-02 12:30) [6]

> Lexius   (02.05.04 11:54) [5]

Так бы сразу и сказали.

Любую информацию можно объединить в один файл, например, таким способом:
<длина_куска1><кусок1><длина_куска2><кусок2>...

Длина куска - это всегда 4 байта. То есть, читается такой файл в таком цикле:
while not EoF(...) do
begin
 считать 4 байта в целую переменную N;
 считать N байт в буфер;
 перекачать этот буфер куда угодно
end;

Пишется в аналогичном цикле for:
- заполнить буфер откуда-то;
- записать 4 байта длины буфера;
- записать сам буфер.

И что это будет - иконки, или еще что-то - неважно. Хоть иконки с музыкой и текстом вперемешку (признак типа куска можно писать аналогично его длине).

Кстати, если иконок очень много, то Вы сможете существенно сэкономить размер файла (и, возможно, выиграть в скорости), если будете писать сжатые данные и распаковывать их при чтении (см. модуль ZLib). То есть - длина УЖЕ СЖАТОГО куска пишется в обычном виде, а сам кусок - в сжатом виде.


 
Lexius   (2004-05-02 13:03) [7]

Как запихать несколько файлов в один и в случае необходимости считать их потом, я конечно понимаю. Мне необходимо чтоб epxlorer видел этот файл, как файл с иконками, и естественно их можно было лепить на ярлыки.
Есть dll, скажем, дописываем в её конец(начало или куда там и что, вот собственно проблема) иконку и устанавливаем на ярлык или папку.

IconFile=C:\Win\icons.dll
IconIndex=38

надеюсь понятно обьяснил :)


 
Юрий Зотов ©   (2004-05-02 13:44) [8]

> Lexius   (02.05.04 13:03) [7]

IMHO.

1. Чтобы Epxlorer видел этот файл, как файл с иконками, это должен быть стандартный PE-файл.

2. Просто так дописать что-то к стандартному PE-файлу и при этом оставить его стандартным - не получится. PE-файлы компилируются.


 
LexIus   (2004-05-02 13:47) [9]

Понятно, спасибо за потраченное время....

Тема закрыта.


 
DVM ©   (2004-05-02 13:50) [10]


> Lexius

PE файл конечно можно построить и самому программно, но имхо трудная довольно задача, что видно из описания PE-формата. Но не боги горшки обжигают. Можно сделать. Читайте, пробуйте.


 
Юрий Зотов ©   (2004-05-02 14:02) [11]

> LexIus

Не уверен, но может быть...

Если речь идет о линейке NT - посмотрите в справке "Resource Functions". В частности, UpdateResource.


 
Lexius   (2004-05-02 15:00) [12]

Описание PE-формата можнo взять здесь :
http://asmlib.narod.ru/files/peformatrus.rar
Может кому пригодится, штука еще та, скажу, чего конечно и следовало ожидать :)



Страницы: 1 вся ветка

Текущий архив: 2004.05.16;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.024 c
1-1083727727
russko
2004-05-05 07:28
2004.05.16
Многоуровневый выпадающий список


7-1080584823
Slash_from_Ryazan
2004-03-29 22:27
2004.05.16
Не вызывается функция RegisterServiceProcess.


14-1082229038
SeriousSam
2004-04-17 23:10
2004.05.16
очените прогу!


3-1082487136
sergg
2004-04-20 22:52
2004.05.16
Как обойти все объекты в DataModule


14-1082951872
Dmitriy O.
2004-04-26 07:57
2004.05.16
Вчера я открыл дачный сезон ! Вскопал грядку !