Иконка для консольного приложения
Есть желание в консольном приложении изменить стандартную иконку для exe файла, как это сделать?
Добавь к проекту res-файл, содержащий ресурс MainIcon.
а с этого места можно подробней? где можно почитать о файле ресурсов, как с ним работать, и тому подобное?
C билдером поставляется ImageEditor (доступен, например, через меню Tools). Запускаешь его, создаёшь в нём ресурс MAINICON, рисуешь свою иконку, сохраняешь res-файл на диск.
Или возьми от примеров res-файл и отредактируй его в том же ImageEditore.
Можно так:
C билдером поставляется ImageEditor (доступен, например, через меню Tools). Запускаешь его, создаёшь в нём ресурс MAINICON, рисуешь свою иконку, сохраняешь res-файл на диск.
Или возьми от примеров res-файл и отредактируй его в том же ImageEditore.
спасибо помогло :)
спасибо помогло :)
только вот качество иконки оставляет желать лучшего! Может можно как-нить сделать лучше?
Может можно как-нить сделать лучше?
Сначала надо найти качественную иконку, можно даже в стиле XP - с альфа-каналом. Потом удалить нахрен иконку из res-файла. Борланд так и не научился работать с иконками в стиле XP.
Пишется rc-файл следующего содержания:
Сохраняется, скажем, как MyAlpha.rc. Потом в командной строке дается:
В результате создается файл ресурса MyAlpha.res, который и надо подключить к проекту.
Сначала надо найти качественную иконку, можно даже в стиле XP - с альфа-каналом. Потом удалить нахрен иконку из res-файла. Борланд так и не научился работать с иконками в стиле XP.
Пишется rc-файл следующего содержания:
Сохраняется, скажем, как MyAlpha.rc. Потом в командной строке дается:
В результате создается файл ресурса MyAlpha.res, который и надо подключить к проекту.
получилось и качество хорошее, только вот когда я компилировал проект он у меня ругнулся на второй res файл т.е. res файл проекта, я его отключил и все нормально, но вот интересно в том res файле ничего нужного не было?
он у меня ругнулся на второй res файл т.е. res файл проекта
Как конкретно ругнулся?
Если файл ресурсов создан автоматически Билдером, в нем, как правило, хранится иконка приложения и сведения о версии, если включено на соответствующей вкладке свойств проекта.
Кстати, еще раз о качестве. Если не используется более 16 цветов и альфа-каналы, можно цивилизованным способом загрузить иконку приложения. Если ты вручную рисовал, наверняка только в одном размере. Для нормального вида же надо иметь, как минимум, 16x16 и 32x32.
Как конкретно ругнулся?
Если файл ресурсов создан автоматически Билдером, в нем, как правило, хранится иконка приложения и сведения о версии, если включено на соответствующей вкладке свойств проекта.
Кстати, еще раз о качестве. Если не используется более 16 цветов и альфа-каналы, можно цивилизованным способом загрузить иконку приложения. Если ты вручную рисовал, наверняка только в одном размере. Для нормального вида же надо иметь, как минимум, 16x16 и 32x32.
Да VersionInfo у меня включен, и икону рисовал как положено в нескольких размерах не только 16x16, 32x32, 128x128, и т.д. что можно сделать?
вот чего я смог сделать:
1. как Freeman советовал, создал файл rc с указанием на иконку с альфа каналами, потом файликом brcc32 создал res файл, потом Resource Workshop 4.5 добавил VersionInfo, подключил res файл к проекту, скомпилировал его и все получилось, но:
1. Автоинкремент версии файла не работает!
2. Каждый раз при смене версий придется делать эту не очень интересную последовательность действий!
меня вот это бы спасло: Как можно иконку в консольном приложении стандартно добавить?
имеешь ввиду через Project->Options->Aplication
так там кнопка Load Icon... не активна!
А иконку можно грузануть функциями Win32 API LoadIcon и LoadImage, если не ошибаюсь.
имеешь ввиду через Project->Options->Aplication
так там кнопка Load Icon... не активна!
Не знаю, как у вас в Билдере, но мне в Дельфи было достаточно написать в файле проекта {$R *.res}, чтобы IDE мгновенно отреагировала: "File ConTest.res not found, recreated", после чего кнопка загрузки иконки в свойствах проекта стала доступной.
Не знаю, как у вас в Билдере, но мне в Дельфи было достаточно написать в файле проекта {$R *.res}, чтобы IDE мгновенно отреагировала: "File ConTest.res not found, recreated", после чего кнопка загрузки иконки в свойствах проекта стала доступной.
да я тоже про это вчера на rsdn читал, но про билдер ничего такого не видел, млин ну у них же корни одни, должно быть такое и в билдере.
да я тоже про это вчера на rsdn читал, но про билдер ничего такого не видел, млин ну у них же корни одни, должно быть такое и в билдере.
USERES("Project1.res"); - такое?
USERES("Project1.res"); - такое?
что-то поторопился я.
Билдер пишет: Cannot find resource file "такой-то" recreated.
А кнопочка Load Icon так и не доступна!
А кнопочка Load Icon так и не доступна!
А версия Билдера? Я тестировал на Дельфи 6. Какая ему версия Билдера соответствует?
Кстати, как ты писал: "имя конкретного файла".res или *.res? При включении ресурсов Дельфи по умолчанию (в GUI-проектах) пишет именно *.res. Наверное, обработчик IDE именно на эту комбинацию и завязан.
А версия Билдера? Я тестировал на Дельфи 6. Какая ему версия Билдера соответствует?
Кстати, как ты писал: "имя конкретного файла".res или *.res? При включении ресурсов Дельфи по умолчанию (в GUI-проектах) пишет именно *.res. Наверное, обработчик IDE именно на эту комбинацию и завязан.
какая версия ему соответствует я не знаю (пока), а то что и так не проходит это точно.
какая версия ему соответствует я не знаю (пока), а то что и так не проходит это точно.
Где проблемы не пойму?
Где проблемы не пойму?
проблемы в том, что нельзя стандартным способом "подключить" иконку к проекту!
Вообще когда твой проект загружаю билдер пишет:
"project has been updated to version 6.0" у тебя вообще какой билдер? 5?
у тебя в этом проекте тоже нельзя "подключить" иконку к проекту :(
проблемы в том, что нельзя стандартным способом "подключить" иконку к проекту!
Вообще когда твой проект загружаю билдер пишет:
"project has been updated to version 6.0" у тебя вообще какой билдер? 5?
у тебя в этом проекте тоже нельзя "подключить" иконку к проекту :(
Что значит "стандартным"? Это что? где-то в ГОСТе прописано? или IEEE подписался? или ANSI себя в грудь бил? :D
Нужно говорить "нельзя подключить из диалогового окна свойств проекта". Ну так ведь существует уйма способов "ободрать кошку" (любителей кошек прошу не беспокоиться :) ). И несколько таких способов тебе уже разъяснили.
Что значит "стандартным"? Это что? где-то в ГОСТе прописано? или IEEE подписался? или ANSI себя в грудь бил? :D
Нужно говорить "нельзя подключить из диалогового окна свойств проекта". Ну так ведь существует уйма способов "ободрать кошку" (любителей кошек прошу не беспокоиться :) ). И несколько таких способов тебе уже разъяснили.
"стандартным способом" это значит обычным, как это делается в билдере! Ты когда в туалете ссышь это стандартный способ свою нужду справлять и нигде это в ГОСТе не прописано! :)
Причем тут несколько способов?, я именно про стандартный спрашиваю; сделать так, чтобы в консольном приложении можно было и в версии файла автоинкримент поставить и иконку загрузить!
в Console Wizard в Source Type выбираем С++ в остальных местах везде галочки убираем, а главное с Console Application и все и иконку стандартным способом и автоинкримент в версии файла!
Вообще билдер сделал так если Console Application галочка стоит, значит, иконки нет, если не стоит значит, есть! почему так ума не приложу.
Вообще билдер сделал так если Console Application галочка стоит, значит, иконки нет, если не стоит значит, есть! почему так ума не приложу.
Это одно из проявлений стандартизации в билдере ;) :D :}
проблемы в том, что нельзя стандартным способом "подключить" иконку к проекту!
вот у Билдера один (на мой непрофессиональный взгляд) недостаток люди быстро привыкают к Darg&Drop и строчку вставить это уже проблема. Ну если тебе не нравится такое положение дел, то делай "стандартный" способ - ToolsAPI еще никто не отменял.
Вообще когда твой проект загружаю билдер пишет:
"project has been updated to version 6.0" у тебя вообще какой билдер? 5?
Вообще нормальней не бывает. когда открываешь проект версией ниже чем среда. У меня 5-й, 6-ку лучше пропусти, подожди уж BDS 2006.
у тебя в этом проекте тоже нельзя "подключить" иконку к проекту :(
Можно.
Можно.
как? через Load Icon...?
как? через Load Icon...?
Я же тебе уже сказал как. Иконка у меня меняется, версия инкрементируется. Кстати о стандартах загляни в системную папку, много там консольных программ с "нестандартными" иконками? Может Я 4егото не понимаю? Вас хер поймешь, программистов...:)
Я же тебе уже сказал как. Иконка у меня меняется, версия инкрементируется. Кстати о стандартах загляни в системную папку, много там консольных программ с "нестандартными" иконками? Может Я 4егото не понимаю? Вас хер поймешь, программистов...:)
У тебя Билдер 5! :) там наверное разработчики такую фичу не доделали с консольным приложением :) у меня 6 и вот не получается, может руки кривые, а может билдер так устроен :)
5 ставить не хочу, у меня все проекты на 6 сделаны, не знаю как это все работать будет. Да и времени этим заниматься нет, лучше уж ресурсами пользоваться (и каждый раз версию изменять ручками):)