Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.73/30: Рейтинг темы: голосов - 30, средняя оценка - 4.73
3 / 3 / 0
Регистрация: 25.04.2012
Сообщений: 50

Изменение картинки при нажатии на BitBtn

16.07.2012, 07:40. Показов 6491. Ответов 36
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как правильно записать условие?
C++
1
2
3
if (BitBtn6->Glyph->LoadFromFile("bmp\\strelka_up.bmp"))
BitBtn6->Glyph->LoadFromFile("bmp\\strelka_down.bmp");
else BitBtn6->Glyph->LoadFromFile("bmp\\strelka_up.bmp");
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.07.2012, 07:40
Ответы с готовыми решениями:

BitBtn - изменение состояния кнопки при нажатии
подскажите. как сделать, что б при нажатии BitBtn кнопка меняла вид на нажатую, при повторном нажатии кнопка возвращалась в своё...

Изменение картинки при нажатии на кнопку
Доброй ночи! Сегодня начал изучать библиотеку PIL (Pillow) - я новичок Пытаюсь сделать справочник городов своего региона, при нажатии...

Изменение картинки при нажатии на нее.
Привет всем. Пожалуйста помогите. Есть несколько картинок, на экране виден только один. Надо, чтоб при нажатии на нее картинка изменилась...

36
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
16.07.2012, 12:06
Студворк — интернет-сервис помощи студентам
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#define VERSIONINFO_1    1
VERSIONINFO_1 VERSIONINFO
 
FILEVERSION 1, 0, 0, 1
PRODUCTVERSION 1, 0, 0, 0
 
FILEOS VOS_NT_WINDOWS32
FILETYPE VFT_APP
{
 BLOCK "StringFileInfo"  {  BLOCK "041904B0"
  {
   VALUE "CompanyName", "Ламер\0"
   VALUE "FileDescription", "Пробная программа\0"
   VALUE "FileVersion", "1.0.0.1\0"
   VALUE "ProductVersion", "1.0.0.0\0"
   VALUE "ProductName", "Проба\0"
   VALUE "LegalCopyright", "г.Губернск © 2012 г.\0"
   VALUE "LegalTrademarks", "Windows(TM) ... \0"
   VALUE "OLESelfRegister", "\0"
  }
 }
 BLOCK "VarFileInfo" { VALUE "Translation", 0x419, 0x04B0 }
//   { VALUE "Translation", 0x419, 0x04E4 - multilingual }
}
 
MAINICON    ICON   "img/Icon1.ico"
1            24    "img/manifest.xml"
 
Stringtable Discardable
{
  100  "Начало работы" ;
}
1
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
16.07.2012, 13:45
Ругается на строку 26.
XML
1
MAINICON    ICON   "img/Icon1.ico"
Вроде и папку создал, и путь прописываю.
Говорит:
C++
1
2
[RC Error] qwerty.rc(26): 
[RC Fatal Error] qwerty.rc(1): Compile
Это самые информативные ошибки, которые я видел. )

И что это в двадцать седьмой строке за тип файла - 24?
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
16.07.2012, 13:58
На строку 26 может ругаться по причине конфликта, - поскольку res файл не удалили из проекта, а там тоже есть Mainicon. При добавлении к проекту файла .rc файл .res следует удалить из проекта. А 27-я строка оформляет в ресурсах "манифест", после чего меняется внешний вид приложения (ХР-образный). Содержимое файла примерно такое__
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
        version="1.0.0.0"
        processorArchitecture="X86"
        name="Company.Product.Name"
        type="win32"
/>
<description></description>
<dependency>
        <dependentAssembly>
                <assemblyIdentity
                        type="win32"
                        name="Microsoft.Windows.Common-Controls"
                        version="6.0.0.0"
                        processorArchitecture="X86"
                        publicKeyToken="6595b64144ccf1df"
                        language="*"
                />
        </dependentAssembly>
</dependency>
</assembly>
1
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
16.07.2012, 14:23
Цитата Сообщение от nick42 Посмотреть сообщение
поскольку res файл не удалили из проекта, а там тоже есть Mainicon
Действительно. Мог бы и сам догадаться.

Manifest подсунул - заработало. XP-образный интерфейс появился, но вот только меняя тип "24" на любой другой произвольный бред все равно все работает. Это как?
И еще по имени MAINICON можно обратиться к иконке, а по имени 1 как обратиться? Почему всмысле билдер это хавает?
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
16.07.2012, 14:31
Цитата Сообщение от SatanaXIII Посмотреть сообщение
Почему всмысле билдер это хавает?
а об этом только он (Билдер) и знает...
1
Я Фоюмчанин ? дааааа)
 Аватар для ivan.-94
213 / 204 / 23
Регистрация: 02.06.2012
Сообщений: 1,424
Записей в блоге: 12
16.07.2012, 17:34
Цитата Сообщение от ФМиИ Посмотреть сообщение
Как правильно записать условие?
Зачем какое условие? Эта кнопка сама меняет кортинки. Просто нужно загружать кортинку как в папке с проектом (1.bmp)

Проект :
Вложения
Тип файла: rar BitBtn.rar (83.1 Кб, 11 просмотров)
0
Я Фоюмчанин ? дааааа)
 Аватар для ivan.-94
213 / 204 / 23
Регистрация: 02.06.2012
Сообщений: 1,424
Записей в блоге: 12
16.07.2012, 17:38
ФМиИ,
Залей мне свои стрелки я тебе сделаю такую картинку.
0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
17.07.2012, 14:20
nick42, а как можно родной res файл раскрутить? Поглазеть что там внутрях?
0
return (true);
 Аватар для mimicria
1977 / 1112 / 221
Регистрация: 19.04.2011
Сообщений: 2,346
17.07.2012, 14:32
Цитата Сообщение от SatanaXIII Посмотреть сообщение
а как можно родной res файл раскрутить? Поглазеть что там внутрях?
Была такая старая софтинка Restorator, ресурсы ковыряла из exe, с res тоже должна справиться
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
17.07.2012, 14:34
Цитата Сообщение от SatanaXIII Посмотреть сообщение
nick42, а как можно родной res файл раскрутить? Поглазеть что там внутрях?
Есть немало полезных инструментов, например: здесь , а кроме того тулза самого Билдера ImageEditor может открывать файлы .res, .dcr.
0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
17.07.2012, 16:37
nick42, в том и прикол, - ImageEditor-ом открыл стандартный .res проекта, а там только иконка. А тот же блокнот говорит, что там помимо иконки еще что-то запихано. Вот и думаю что.
mimicria, спасибо. Нашел я пару старых тем про загрузку в ресурсы картинок. Там и ресторатор и еще много всякой хрени.

Но, вы будете смеяться, опять же почитав те темы, возникло у меня два вопроса:
1) Почему один и тот же типа файла в ресурсах обозначается по разному (BITMAP, RT_BITMAP, MYBMP, что-то там еще с DATA, и прочее)? И это все картинки.
Там же синтаксис какой? - <название под которым будет видеться картинка в программе|ее тип|путь к ней>
И соответственно какие есть типы, да и что такое тогда само понятие типа непонятно.
2) Рекомендуется использовать заголовочный файл .h в котором переопределить название картинки в ресурсе.
C++
1
2
resource.h
#define IMAGE_FL1 100
C++
1
2
3
.rc
#include resource.h
IMAGE_FL1 RT_BITMAP "picture.bmp"
А в тексте программы уже
C++
1
2
3
4
5
6
7
8
9
10
11
#include"resource.h"
...
Graphics::TBitmap* ptBitmap;
ptBitmap=new Graphics::TBitmap();
TResourceStream *ptRes=new TResourceStream((int)HInstance, "IMAGE_FL1", "RT_BITMAP");
ptBitmap->LoadFromStream(ptRes);
delete ptRes;
delete ptBitmap;
 
//  
//   Лопни мои глаза, но я в упор не вижу чтобы здесь вот где-то пригодился resource.h
И что это за хрень? Зачем нам потом, когда захочется обратиться к нашей картинке, обращатьяс к ней не по имени IMAGE_FL1, а по переопределенному в дефайне значению 100? Или я что-то скорее всего не так понимаю?
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
17.07.2012, 16:50
просто .rc - это файл сценария создания файла ресурсов .res. Подробного и детального описания о возможностях и синтаксисе таких файлов я не видел, хотя нуждаюсь в них, поскольку с .rc файлами работаю постоянно. "Заобозначить" ресурс, видимо, можно по разному, только он так же и "пониматься" будет системой; самое правильное обозначение, наверно, это типа RT_BITMAP (с приставкой RT_ таких типов штук 10-15 существует). Многие ресурсы, которые я пробую определять в .rc файле получают свои уникальные номера после компиляции - для этого, вероятно, и употребляют заголовочный файл: чтоб эти номера были не случайными. Ну и, что касается ресурсов, я обратил внимание, что при старте приложения в память они не загружаются, а берутся из файла по мере надобности.
1
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
18.07.2012, 09:17
Цитата Сообщение от nick42 Посмотреть сообщение
с приставкой RT_ таких типов штук 10-15 существует
А списочка нет какого-нибудь? Или где-нибудь почитать.
RT - мне единственное что придумывается это Run Time.

Цитата Сообщение от nick42 Посмотреть сообщение
Многие ресурсы, которые я пробую определять в .rc файле получают свои уникальные номера после компиляции - для этого, вероятно, и употребляют заголовочный файл: чтоб эти номера были не случайными.
Наверное я до понимания этого еще не дорос. Зачем использовать пусть даже не случайные, но номера для обозначения чего-то? Мож плохая аналогия, но на мой взгляд это напоминает
C++
1
int boolean;
Цитата Сообщение от nick42 Посмотреть сообщение
Ну и, что касается ресурсов, я обратил внимание, что при старте приложения в память они не загружаются, а берутся из файла по мере надобности.
А вот это вот очень полезно. Спасибо.
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
18.07.2012, 10:56
Цитата Сообщение от SatanaXIII Посмотреть сообщение
RT - мне единственное что придумывается это Run Time.
Resource Type.

Ресурсы можно подгружать по имени или по номеру - LoadFromResourceID, когда как удобнее. Однако с компиляторами исторически сложилась такая шутка, что номера они присваивают ресурсам произвольные, если явно их не указать в файле rc. Почему и все ли компиляторы уже не припомню.

Идентификатор ресурса Название ресурса
RT_ACCELERATOR Таблица акселераторов
RT_BITMAP Изображение bitmap
RT_CURSOR Курсор
RT_DIALOG Диалоговая панель
RT_FONT Шрифт
RT_FONTDIR Каталог шрифтов
RT_ICON Пиктограмма
RT_MENU Меню
RT_RCDATA Произвольные данные
RT_STRING Таблица строк

Добавлено через 12 минут
Вот еще на msdn более развернутый список отыскался: Resource Types
2
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
18.07.2012, 11:45
Цитата Сообщение от BRcr Посмотреть сообщение
Resource Type.
Спиноза!

А по вот этому еще вопросик есть один:
Цитата Сообщение от nick42 Посмотреть сообщение
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#define VERSIONINFO_1    1
VERSIONINFO_1 VERSIONINFO
 
FILEVERSION 1, 0, 0, 1
PRODUCTVERSION 1, 0, 0, 0
 
FILEOS VOS_NT_WINDOWS32
FILETYPE VFT_APP
{
 BLOCK "StringFileInfo"  {  BLOCK "041904B0"
  {
   VALUE "CompanyName", "Ламер\0"
   VALUE "FileDescription", "Пробная программа\0"
   VALUE "FileVersion", "1.0.0.1\0"
   VALUE "ProductVersion", "1.0.0.0\0"
   VALUE "ProductName", "Проба\0"
   VALUE "LegalCopyright", "г.Губернск © 2012 г.\0"
   VALUE "LegalTrademarks", "Windows(TM) ... \0"
   VALUE "OLESelfRegister", "\0"
  }
 }
 BLOCK "VarFileInfo" { VALUE "Translation", 0x419, 0x04B0 }
//   { VALUE "Translation", 0x419, 0x04E4 - multilingual }
}
 
MAINICON    ICON   "img/Icon1.ico"
1            24    "img/manifest.xml"
 
Stringtable Discardable
{
  100  "Начало работы" ;
}
Что-то не хочет он у меня в свойствах файла в CompanyName Ламер указывать. Мож распознал?!
Соответственно что такое в 10 строке 041904B0? А запись
XML
1
100  "Начало работы" ;
мне вообще почему-то бейсик напоминает. nick42, как главный специалист, съевший по собственному признанию собаку на этом деле, поведай о составлении этого файла.

Добавлено через 39 минут
Внимательно перечитал все темы на эту тему (простите за каламбур) и еще один вопрос появился:
при подключении заголовочного файла some.h последней строкой идет
C++
1
#pragma resource "SOME.RES"
Означает ли это, что дойдя до этой строки компилятор сам подключит файл с самими ресурсами SOME.RES? Наподобие ли это тому, что наоборот в самом SOME.Res напишется
C++
1
#include "some.h"
?
Или это имеется ввиду, что если SOME.RES не прикручен к проекту, то он прикрутится?

И еще в .h файле таким образом надо указывать на .res или .rc?
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
18.07.2012, 15:53
Цитата Сообщение от SatanaXIII Посмотреть сообщение
что такое в 10 строке 041904B0?
Понятное дело: кодовая страница и раскладка клавиатуры (Россия).

Цитата Сообщение от SatanaXIII Посмотреть сообщение
в .h файле таким образом надо указывать на .res или .rc?
Надо res. Их может быть несколько в проекте, - главное, чтоб ресурсы не конфликтовали.

Цитата Сообщение от SatanaXIII Посмотреть сообщение
не хочет он у меня в свойствах файла в CompanyName Ламер указывать.
Что значит "не хочет"? В свойствах файла это не показано, а когда указатель наводишь на приложение, то всплывает в свойстве "Организация:".

Добавлено через 16 минут
SatanaXIII, и на название темы Вы поглядываете? По моему мы плавно отъехали от него в сторону ресурсов, а в этом форуме подобные темы возникали не раз и полностью они не "освящены", можно продолжать...
0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
18.07.2012, 16:06
nick42, да, действительно, немного отвлеклись.

Добавлено через 53 секунды
Цитата Сообщение от nick42 Посмотреть сообщение
а в этом форуме подобные темы возникали не раз и полностью они не "освящены", можно продолжать...
И да, вопросы остались.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.07.2012, 16:06
Помогаю со студенческими работами здесь

Реализовать изменение картинки при нажатии на кнопку
нужно чтоб после нажатия на кнопку картинка в image поменялась

Изменение состояния картинки на кнопке при ее нажатии
Всем доброго времени суток! Сделал значит я кнопки, наложил на них картинку через BackgroundImage, а в событиях на MouseDown и MauseUp,...

При нажатии на кнопку Bitbtn добавлять значение в ячейку Dbgrid
Здравствуйте. Подскажите пожалуйста как сделать так, чтобы при нажатии на кнопку bitbtn в ячейку &quot;ТекущийЭкз&quot; dbgrid...

BitBtn смена картинки
Здравствуйте! Подскажите как можно сделать в C++ Builder чтобы при наведении курсора на BitBtn картинка заменялась другой, а при отводе...

Настройка картинки в BitBtn
в BitBtn добавляю картинку она принимает свой настоящий размер, ее можно как-то под кнопку подогнать?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
37
Ответ Создать тему
Новые блоги и статьи
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru