иконка для консольной программы

Общие вопросы программирования, алгоритмы и т.п.

Модератор: Модераторы

иконка для консольной программы

Сообщение nagash » 07.08.2007 12:10:49

Возможно ли сделать иконку для консольной программы?
Ну т.е. если {$APPTYPE CONSOLE}
Как-то ведь это делается...
Например виндовский cmd.exe или cscript.exe
nagash
новенький
 
Сообщения: 50
Зарегистрирован: 21.05.2007 08:27:05

Сообщение SovNarKom » 07.08.2007 16:02:34

Так же, как и для не консольной, цепляешь ресурсный файл с иконкой.
SovNarKom
постоялец
 
Сообщения: 389
Зарегистрирован: 28.05.2005 10:37:39
Откуда: Воронеж [vrn] [36]

Сообщение nagash » 08.08.2007 07:23:32

SovNarKom
как цеплять ресурсы я понял в принципе, почитал руководство...
пишу значит
{$R AppIcon ICON "sb.ico"}
получаю Error while linking
подумал что вероятно AppIcon не относится к директиве $R (мануал ужасен), порыскал на предмет AppIcon.exe - ничего не нашел.

Решил пойти обходным путем, использовал XN Resource Editor, в нем заявлена поддержка win32/pe. Так нифига, он порет экзешник, программа после него отказывается запускаться.

Объясни пожалуйста.
С офсайтом фрипаскаля траблы... В некоторых разделах (в т.ч. и в поиске) выдает Server Error.
nagash
новенький
 
Сообщения: 50
Зарегистрирован: 21.05.2007 08:27:05

Сообщение SovNarKom » 08.08.2007 07:43:36

Кстати руководство на удивление не плохое.. но правда вот то что ты вычитал действительно жуть какая-то... нашёл же=) Лучше PDF читать...

Так вот цеплять ресурс нужно вот так: {$R myicon.res}
А создавать... ну вообще в любом редакторе, на это способном.

А если редактора нет то...
1. Создаёшь текстовый файл, пишешь в нём
MAINICON ICON "Путь к иконке"
2. Сохраняешь его в файле myicon.rc.
3. Натравливаешь на этот файл windres, (Я надеюсь он у тебя в PATH прописан): windres myicon.rc > myicon.res
Всё, можно компилировать.

Да, в качестве редактора ресурсов советую ResourceHacker.
SovNarKom
постоялец
 
Сообщения: 389
Зарегистрирован: 28.05.2005 10:37:39
Откуда: Воронеж [vrn] [36]

Сообщение nagash » 08.08.2007 09:04:42

SovNarKom
я думал что доки в html и в pdf одинаковы)

Блин... через жопу как-то... вот почему бы не объединить все в кучу?) Ну к примеру пишешь
Код: Выделить всё
{$R ICON "c:\myicon\myicon.ico"}

и без всяких извращений получаешь программу с иконкой)

Ну это я так... придираюсь)
Спасибо за помощь!
nagash
новенький
 
Сообщения: 50
Зарегистрирован: 21.05.2007 08:27:05

Сообщение Attid » 08.08.2007 11:46:22

нет это твой вариант получается через одно место,
есть определено созданый стандарт и ему надо следовать.

а то что многог движений так это пока недоделка лазаря.
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2585
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Сообщение nagash » 08.08.2007 12:24:24

Attid
Ты меня не понял наверное)
Неудобно просто. Неужели добавить директиву, обозвать к примеру $ADDRES, позволяющую все делать автоматом (да хотя бы обращаться автоматически к windres) это нарушение стандарта?

например
Код: Выделить всё
{$ADDRES ICON "c:\myicon\myicon.ico"}
{$ADDRES STRING "c:\myrc\myrc.rc"}


по-моему так проще

P.S. Топик про FPC. Это не под лазарусом. Я читал там проще работать с иконками, чем в FPC.
nagash
новенький
 
Сообщения: 50
Зарегистрирован: 21.05.2007 08:27:05

Сообщение SovNarKom » 08.08.2007 18:31:31

Дело, как мне кажется, в структуре того же exe файла, и сборщика используемого для сборки, ld например ещё не так давно использовался и под виндой...

Одним словом - новая директива это гемор. А зачем он нужен, если можно сделать так, как принято везде? Тем более, что при наличии нормального редактора ресурсов проблема исчезает. А при твоём подходе придётся 100 строк писать, если нужно 100 ресурсов запихнуть в файл?

В лазаре... нет не проще.
SovNarKom
постоялец
 
Сообщения: 389
Зарегистрирован: 28.05.2005 10:37:39
Откуда: Воронеж [vrn] [36]

Сообщение nagash » 09.08.2007 06:15:43

SovNarKom
Нет, не придется. Нужно сделать поддержку масок :D
Код: Выделить всё
{$ADDRES STRING "c:\myrc\*.rc}


Ладно, я не могу быть грамотным в данном вопросе.
Спасибо за помощь еще раз.

Дабы не создавать еще один топ - как то же самое сделать с версией?
Натолкнулся вот на такой офигенный мануал. Коммент там очень в тему)
nagash
новенький
 
Сообщения: 50
Зарегистрирован: 21.05.2007 08:27:05

Сообщение nagash » 09.08.2007 06:29:50

Извиняюсь, разобрался с версией.
windres не хотел собирать rc-файл почему-то. Сейчас перебил ручками - заработало.
Но теперь...
Допустим я хочу чтобы у меня иконка и версия хранились в разных res'ах. Пишу
Код: Выделить всё
{$R ico.res}
{$R ver.res}

Запихивается только то, что идет последним.
Каков синтаксис?
Я нашел только следующее
Under Windows, you can include resources in your executable or library using the f$R filenameg directive.
nagash
новенький
 
Сообщения: 50
Зарегистрирован: 21.05.2007 08:27:05

Сообщение Юра » 09.08.2007 13:48:37

Нужно использовать fpc 2.1.5 или старше. Более ранние версии не поддерживают подключение нескольких ресурсных файлов.
Кстати, можно подключать сразу .rc файл и fpc сам его соберет.
Юра
постоялец
 
Сообщения: 163
Зарегистрирован: 25.05.2005 10:20:09
Откуда: Украина, Киев

Сообщение nagash » 09.08.2007 13:55:58

Юра
Отлично, спасибо. Очень ценная инфа.
Полез обновляться с 2.0.4)
nagash
новенький
 
Сообщения: 50
Зарегистрирован: 21.05.2007 08:27:05

Сообщение AMD » 08.03.2008 18:04:01

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 чтото не то делает
AMD
постоялец
 
Сообщения: 189
Зарегистрирован: 23.01.2008 22:25:25
Откуда: Кишинев

Сообщение m_guest » 08.03.2008 18:42:30

Я использую для компиляции rc-файла компилятор ресурсов отсюда
m_guest
постоялец
 
Сообщения: 193
Зарегистрирован: 14.08.2005 15:10:21

Сообщение AMD » 09.03.2008 01:38:49

m_guest писал(а):Я использую для компиляции rc-файла компилятор ресурсов отсюда


так работает

GoRC.exe /r myicon.res myicon.rc

хотя странно почему родной не работает?
AMD
постоялец
 
Сообщения: 189
Зарегистрирован: 23.01.2008 22:25:25
Откуда: Кишинев

След.

Вернуться в Общее

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8

Рейтинг@Mail.ru