![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вопросик??? [D6]
Brand © (2002-08-01 22:45:00)У меня в программе используется много фалов с иконками (порядка 20). Все они у меня лежат в отдельном каталоге и подгружаются оттуда. Хотелось-бы как-нибудь добавить эти иконки себе в проект (на форму или еще как) и вообще стереть их с диска. Как это сделать?
Brand (2002-08-18 15:48:00) [1]А, собственно, код чего в студию???
Юрий Зотов (2002-08-18 01:20:00) [2]OK. Код - в студию.
Pls.
Brand (2002-08-18 00:52:00) [3]но без использования ресурсов все нормально!!!
Юрий Зотов (2002-08-13 00:58:00) [4]Вероятно, это как-то должно зависеть от цветового разрешения видеокарты и самой иконки? Да и цветовая схема монитора, видимо, тоже должна как-то влиять?
Brand (2002-08-13 00:36:00) [5]Гыгыгы, а в SysTray иконка получилась с немножко искаженными цветами. Вот так...:(((
Юрий Зотов (2002-08-03 14:09:00) [6]> Nemo II (03.08.02 03:23)
См. ExtractIcon в справке API.
> Brand (03.08.02 12:48)
Готовому проекту файл ICO.RES уже не нужен - иконки будут зашиты в самом EXE. А вместо LoadFromFile либо используйте LoadFromStream и TResourceStream (см. в справке), либо просто API-шную LoadIcon:
Application.Icon.Handle := LoadIcon(hinstance, "ИМЯ_ИКОНКИ");
Malder (2002-08-03 13:50:00) [7]вероятно,
Application.Icon:=XXX
где xxx.ico - название файла, где до компиляции хранилась иконка.
Brand (2002-08-03 12:48:00) [8]>Suntechnic
Не получается.
Ну вот как мне надо записать вместо Application.Icon.LoadFromFile("C:/ico.ico");
???
Nemo II (2002-08-03 03:23:00) [9]Удалено модератором
Suntechnic (2002-08-03 00:53:00) [10]Не надо их извлекать из ico.RES Подключи этот файл к проекту и делай LoadIcon.
Brand (2002-08-03 00:36:00) [11]>Юрий Зотов
Все вроде получилось с большими боями. Но, я извеняюсь, но как извлекать их из ico.RES
Раньше делал так:
Application.Icon.LoadFromFile("C:/ico.ico");
А как теперь?
Юрий Зотов (2002-08-02 08:41:00) [12]Если иконок много, то гораздо быстрее получится так.
1. Все нужные файлы иконок соберите в каком-нибудь каталоге, например C:\MyIcons. Ненужных иконок в нем быть не должно.
2. Следующий текст сохраните в файле ResMaker.dpr и загрузите этот проект в Delphi.
program ResMaker;
uses
Windows,
SysUtils;
const
Dir = "С:\MyIcons"; // Каталог с нужными файлами
Ext = "ico"; // Расширение имен файлов
ResType = " ICON "; // Тип ресурса с пробелами перед ним и после него
RcExt = ".rc";
Msg = "OK."#13#10"Include string: {$R %s.RES}";
var
SR: TSearchRec;
ExtLen: integer;
RcFile: string;
F: TextFile;
begin
ChDir(Dir);
if FindFirst("*." + Ext, 0, SR) = 0 then
try
ExtLen := Length(Ext) + 1;
RcFile := Ext + RcExt;
AssignFile(F, RcFile);
Rewrite(F);
repeat
WriteLn(F, AnsiUpperCase(Copy(SR.Name, 1, Length(SR.Name) - ExtLen)), ResType, SR.Name)
until FindNext(SR) <> 0;
CloseFile(F);
Win32Check(WinExec(PChar("brcc32.exe " + RcFile), SW_HIDE) > 31);
MessageBox(0, PChar(Format(Msg, [AnsiUpperCase(Ext)])),
"ResMaker", MB_OK or MB_ICONINFORMATION or MB_TASKMODAL)
finally
FindClose(SR)
end
end.
3. Отредактируйте константу Dir (в приведенном виде проект настроен на иконки, но умеет строить и любой другой тип ресурсов - для этого требуется соответственно отредактировать константы Ext и ResType).
4. Выполните эту программу. В каталоге с иконками появятся 2 файла: ICO.RC и ICO.RES. Первый можно удалить, а второй перенесите в каталог с Вашим проектом.
5. В текст Вашего проекта вставьте строку: {$R ICO.RES} - например, в модуль его главной формы после строки {$R *.DFM}.
Теперь все иконки будут содержаться в ресурсах Вашего проекта. Извлекать их можно по именам ресурсов - имя ресурса каждой иконки совпадает с именем ее исходного файла (в верхнем регистре и без расширения .ICO).
Almaz (2002-08-02 02:37:00) [13]Существует еще Resource Workshop - он работает с любыми иконками, в т.ч. и 256 цветными.
Удачи.
Brand (2002-08-01 23:43:00) [14]Вот только у меня иконки 256-цветные, а Image Editor работает только с 16-ю.
DiamondShark (2002-08-01 22:52:00) [15]Использовать ресурсы.
Файл ресурса (.res) можно создать Image Editor-ом
Или руками набрать текст ресурса (.rc) и скомпилить его brcc32
В программе в любом месте напишите
{$R MyIcons.RES}