Страница 1 из 2
иконка для консольной программы
Добавлено: 07.08.2007 12:10:49
nagash
Возможно ли сделать иконку для консольной программы?
Ну т.е. если {$APPTYPE CONSOLE}
Как-то ведь это делается...
Например виндовский cmd.exe или cscript.exe
Добавлено: 07.08.2007 16:02:34
SovNarKom
Так же, как и для не консольной, цепляешь ресурсный файл с иконкой.
Добавлено: 08.08.2007 07:23:32
nagash
SovNarKom
как цеплять ресурсы я понял в принципе, почитал руководство...
пишу значит
{$R AppIcon ICON "sb.ico"}
получаю Error while linking
подумал что вероятно AppIcon не относится к директиве $R (
мануал ужасен), порыскал на предмет AppIcon.exe - ничего не нашел.
Решил пойти обходным путем, использовал XN Resource Editor, в нем заявлена поддержка win32/pe. Так нифига, он порет экзешник, программа после него отказывается запускаться.
Объясни пожалуйста.
С офсайтом фрипаскаля траблы... В некоторых разделах (в т.ч. и в поиске) выдает Server Error.
Добавлено: 08.08.2007 07:43:36
SovNarKom
Кстати руководство на удивление не плохое.. но правда вот то что ты вычитал действительно жуть какая-то... нашёл же=) Лучше PDF читать...
Так вот цеплять ресурс нужно вот так: {$R myicon.res}
А создавать... ну вообще в любом редакторе, на это способном.
А если редактора нет то...
1. Создаёшь текстовый файл, пишешь в нём
MAINICON ICON "Путь к иконке"
2. Сохраняешь его в файле myicon.rc.
3. Натравливаешь на этот файл windres, (Я надеюсь он у тебя в PATH прописан): windres myicon.rc > myicon.res
Всё, можно компилировать.
Да, в качестве редактора ресурсов советую ResourceHacker.
Добавлено: 08.08.2007 09:04:42
nagash
SovNarKom
я думал что доки в html и в pdf одинаковы)
Блин... через жопу как-то... вот почему бы не объединить все в кучу?) Ну к примеру пишешь
и без всяких извращений получаешь программу с иконкой)
Ну это я так... придираюсь)
Спасибо за помощь!
Добавлено: 08.08.2007 11:46:22
Attid
нет это твой вариант получается через одно место,
есть определено созданый стандарт и ему надо следовать.
а то что многог движений так это пока недоделка лазаря.
Добавлено: 08.08.2007 12:24:24
nagash
Attid
Ты меня не понял наверное)
Неудобно просто. Неужели добавить директиву, обозвать к примеру $ADDRES, позволяющую все делать автоматом (да хотя бы обращаться автоматически к windres) это нарушение стандарта?
например
Код: Выделить всё
{$ADDRES ICON "c:\myicon\myicon.ico"}
{$ADDRES STRING "c:\myrc\myrc.rc"}
по-моему так проще
P.S. Топик про FPC. Это не под лазарусом. Я читал там проще работать с иконками, чем в FPC.
Добавлено: 08.08.2007 18:31:31
SovNarKom
Дело, как мне кажется, в структуре того же exe файла, и сборщика используемого для сборки, ld например ещё не так давно использовался и под виндой...
Одним словом - новая директива это гемор. А зачем он нужен, если можно сделать так, как принято везде? Тем более, что при наличии нормального редактора ресурсов проблема исчезает. А при твоём подходе придётся 100 строк писать, если нужно 100 ресурсов запихнуть в файл?
В лазаре... нет не проще.
Добавлено: 09.08.2007 06:15:43
nagash
SovNarKom
Нет, не придется. Нужно сделать поддержку масок
Ладно, я не могу быть грамотным в данном вопросе.
Спасибо за помощь еще раз.
Дабы не создавать еще один топ - как то же самое сделать с версией?
Натолкнулся вот на такой офигенный
мануал. Коммент там очень в тему)
Добавлено: 09.08.2007 06:29:50
nagash
Извиняюсь, разобрался с версией.
windres не хотел собирать rc-файл почему-то. Сейчас перебил ручками - заработало.
Но теперь...
Допустим я хочу чтобы у меня иконка и версия хранились в разных res'ах. Пишу
Запихивается только то, что идет последним.
Каков синтаксис?
Я нашел только следующее
Under Windows, you can include resources in your executable or library using the f$R filenameg directive.
Добавлено: 09.08.2007 13:48:37
Юра
Нужно использовать fpc 2.1.5 или старше. Более ранние версии не поддерживают подключение нескольких ресурсных файлов.
Кстати, можно подключать сразу .rc файл и fpc сам его соберет.
Добавлено: 09.08.2007 13:55:58
nagash
Юра
Отлично, спасибо. Очень ценная инфа.
Полез обновляться с 2.0.4)
Добавлено: 08.03.2008 17:04:01
AMD
SovNarKom писал(а):Кстати руководство на удивление не плохое.. но правда вот то что ты вычитал действительно жуть какая-то... нашёл же=) Лучше PDF читать...
Так вот цеплять ресурс нужно вот так: {$R myicon.res}
А создавать... ну вообще в любом редакторе, на это способном.
А если редактора нет то...
1. Создаёшь текстовый файл, пишешь в нём
MAINICON ICON "Путь к иконке"
2. Сохраняешь его в файле myicon.rc.
3. Натравливаешь на этот файл windres, (Я надеюсь он у тебя в PATH прописан): windres myicon.rc > myicon.res
Всё, можно компилировать.
Да, в качестве редактора ресурсов советую ResourceHacker.
Все вроде ок создал файл как полагается но вот не цепляется зараза говорит что инвалид мой файл
project1.lpr(22,1) Error: Invalid resource file: myicon.res
взял resource file лазаруса компилится прекрасно
значит windres myicon.rc > myicon.res чтото не то делает
Добавлено: 08.03.2008 17:42:30
m_guest
Я использую для компиляции rc-файла компилятор ресурсов
отсюда
Добавлено: 09.03.2008 00:38:49
AMD
m_guest писал(а):Я использую для компиляции rc-файла компилятор ресурсов
отсюда
так работает
GoRC.exe /r myicon.res myicon.rc
хотя странно почему родной не работает?