Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.05.16;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.035 c
1-1083318130
siriusP
2004-04-30 13:42
2004.05.16
Как запретить класть на TPanel компоненты?


8-1077816064
evrey
2004-02-26 20:21
2004.05.16
Получение цвета пикселя в изображении.


7-1081317970
Borealis
2004-04-07 10:06
2004.05.16
Сервис RunAs


14-1082616760
infom
2004-04-22 10:52
2004.05.16
Разьясните незнающему что значит слово <сабж>


4-1079726384
i-s-v
2004-03-19 22:59
2004.05.16
Можно ли c помощью SendMessage передавать строку





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский