![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Dll с иконками [D7, D2005, XP]
Yekver © (2007-08-06 10:59:00)Вопрос может конечно и глупый, но я никогда не работал с Dll'ками. Мне нужно создать библиотеку с n-числом иконок в ней. Вопрос как их туда добавить?
Yekver (2007-08-06 12:53:00) [1]Спасибо всё, получилось....))
Инс (2007-08-06 12:39:00) [2]
> Я согласен, что если есть несколько приложений, использующих
> одни ресурсы, то их имеет смысл хранить в dll. Но если одно
> из етих приложений являеться основным и в любом случае будет
> присутствовать то можно хранить ресурсы в этом приложении.
С этим утверждением и я согласен, в принципе. Меня категоричность [8] смутила, вот я и комментирую.
ПЛОВ (2007-08-06 12:37:00) [3]
> Иногда им требуются общие ресурсы. Включать по копии в каждый
> exe? Только опять вы сейчас скажете, что пример надуман,
> автору нужно другое. Так что, насчет данного сабжа, то
> автор ясно сказал [21]
Автор уже получил ответ. Так что это в продолжение развитой темы :)
Я согласен, что если есть несколько приложений, использующих одни ресурсы, то их имеет смысл хранить в dll. Но если одно из етих приложений являеться основным и в любом случае будет присутствовать то можно хранить ресурсы в этом приложении.
Dib@zol (2007-08-06 12:33:00) [4]> [27] ПЛОВ © (06.08.07 12:31)
Я не о том. Я про множество длл для одной иконки.
palva (2007-08-06 12:31:00) [5]
> Yekver (06.08.07 12:18) [20]
Неправильно. Фактически вы используете пользовательский ресурс ADDITION1, и система не понимает, что это иконка. Кроме того у вас у всех иконок один и тот же идентификатор. Попробуйте так:
123 ICON "1.ICO"
124 ICON "2.ICO"
125 ICON "3.ICO"
Еще может быть, что у вас неправильные форматы иконок.
У меня работает такой вариант.
iiii.rc
131 icon "C:\Program Files\Common Files\Borland Shared\Images\Icons\construc.ico"
132 icon "C:\Program Files\Common Files\Borland Shared\Images\Icons\earth.ico"
iiii.pas
library iiii;
{$R iiii.res}
begin
end.
ПЛОВ (2007-08-06 12:31:00) [6]
> Теперь докажите логичность вашего "подхода"...
Меньшее количество компонентов. Вместо приложений и dll только приложения.
Инс (2007-08-06 12:30:00) [7]
> [23] ПЛОВ © (06.08.07 12:27)
Не, я не про это. Вы никогда не разрабатывали сложные системы, состоящие из двух, трех и более exe? Иногда им требуются общие ресурсы. Включать по копии в каждый exe?
Только опять вы сейчас скажете, что пример надуман, автору нужно другое. Так что, насчет данного сабжа, то автор ясно сказал [21]
{RASkov} (2007-08-06 12:29:00) [8]> [23] ПЛОВ © (06.08.07 12:27)
Прекращай безобаснованный спор :) Можно кучей разных способов хранить ресурсы и Dll один из удобных случаев....
:о)
Dib@zol (2007-08-06 12:28:00) [9]> Зачем делать ЕЩЕ ОДИН ФАЙЛ если можно успешно обйтись БЕЗ
> НЕГО? Ну тогда можно еще сделать несколько длл для каждой
> иконки...
Кхм. Логичность создания длл вам уже расписали. Теперь докажите логичность вашего "подхода"...
ПЛОВ (2007-08-06 12:27:00) [10]
> Посмтрел бы я как ПЛОВ подгрузил бы иконку для одного exe
> из другого :) В принципе можно, вот только логично ли..
Зачем делать ЕЩЕ ОДИН ФАЙЛ если можно успешно обйтись БЕЗ НЕГО? Ну тогда можно еще сделать несколько длл для каждой иконки...
Инс (2007-08-06 12:24:00) [11]
> [19] ПЛОВ © (06.08.07 12:18)
Посмтрел бы я как ПЛОВ подгрузил бы иконку для одного exe из другого :) В принципе можно, вот только логично ли...
Yekver (2007-08-06 12:19:00) [12]
> ПЛОВ © (06.08.07 12:18) [19]
Затем что это Miranda IM и там иконки подгружаются из Dll
Yekver (2007-08-06 12:18:00) [13]
> palva © (06.08.07 12:11) [17]
*.rc - файл:
DEFAULT ADDITION1 1.ICO
DEFAULT ADDITION1 2.ICO
DEFAULT ADDITION1 3.ICO
> Dib@zol © (06.08.07 12:12) [18]
Да. Только вот его когда открывает Restorator 2007, то в директории иконки он видит только иконку самого Делфи, а мои иконки идут отдельными директориями и отображаются в виде набора букв и цифр, а не картинки :(
ПЛОВ (2007-08-06 12:18:00) [14]
> Я бы не был так категоричен. Иногда общий ресурс должны
> использовать разные приложения, как в cards.dll, например.
> Или если картинки или прочие ресурсы нужно обновить в уже
> распространяемой программе, удобно будет просто заменить
> DLL-ку.
Автор спрашивает про иконки а не про "прочие ресурсы". Интересно что за такая программа в которой нужно часто менять иконки? Если это общий ресурс, используемый разными приложениями то наверняка иконки можно было бы разместить в "главном" приложении (если конечно оно есть), зачем клепать для этого dll?
Dib@zol (2007-08-06 12:12:00) [15]> Как это правильно реализовать мне тут объяснять?)
Ну так ты ресурсный то файл получил (скомпилировал из *.RC в *.res)?
palva (2007-08-06 12:11:00) [16]
> Yekver (06.08.07 12:04) [9]
>
> Так и сделал. Только ресурс делал с помощью компилятора
> BRCC32.exe
Вот это правильно. А строку исходного файла описывающую иконку можете привести?
Dib@zol (2007-08-06 12:11:00) [17]> [12] \/iKTOR (06.08.07 12:08)
С помощью банального битБЛТ. У иконок одинаковая ширина и высота, поэтому для загрузки нужной надо просто помножить номер иконки на высоту линейки и отчекрыжить её из этой линейки в заранее уготовленный битмап.
Yekver (2007-08-06 12:10:00) [18]
> Инс © (06.08.07 12:06) [11]
Именно для этого мне и нужна dll. Как это правильно реализовать мне тут объяснять?)
\/iKTOR (2007-08-06 12:09:00) [19]Всмысле средствами делфи их можно создать, и как тогда обращаться к каждой из них в отдельности.
palva (2007-08-06 12:09:00) [20]Не очень понятно, что у вас не получается. Файлы иконок у вас имеются? Ресурсный файл Res вам удалось получить? И потом что значит не видны? Вы спрашивали как их туда положить. Тогда подробно расскажите, как вы их собираетесь просматривать или доставать.