Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/9: Рейтинг темы: голосов - 9, средняя оценка - 5.00
0 / 0 / 1
Регистрация: 09.12.2015
Сообщений: 35
1

Как проверить, из какого файла загружено изображение?

05.02.2016, 02:15. Показов 1824. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, проверяю правильность залитой картинки, то есть что бы в зависимости от того какая картинка залита в Image выполнялись разные действия. Столкнулся с проблемой, код работает, но выдаёт предупреждение "W8011 Nonportable pointer comparison"
Всё бы ничего, ведь это только предупреждение, но много примерно одинаковых строк, поэтому не позволяет запустить проект, пишет
"E2228 Too many error or warning messages"
Вот пример кода где предупреждение:
C++
1
 if ((Image2->Picture!="circle_black.jpg") && (Image2->Picture!="circle_green.jpg")
Как это != записать корректней? Спасибо!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.02.2016, 02:15
Ответы с готовыми решениями:

Как проверить - загружено ли изображение в Image
как сделать, чтобы при нажатие на кнопку , если изображение не загружено на image1 выводилось...

Как программно узнать, что изображение загружено в пикчуребокс?
Доброго всем времени суток! Вопрос в названии темы.

Как выяснить, какое именно изображение загружено в picturebox из ресуров
Добрый день. Есть 1 кнопка, 1 picturebox и 3 изображения в менеджере ресурсов (pic1, pic2,...

Как посчитать хэш SHA3-512 для какого-либо файла и потом проверить его?
Требуется открыть файл на диске большого размера (15-30 ГБ), рассчитать для него контрольную сумму...

11
2 / 2 / 1
Регистрация: 19.07.2015
Сообщений: 37
05.02.2016, 08:46 2
Мне кажется или Вы скобочку забыли ??? !!!
0
0 / 0 / 1
Регистрация: 09.12.2015
Сообщений: 35
05.02.2016, 09:28  [ТС] 3
bad_luck_ho_ho, нет, я скинул строчку как образец, там дальше продолжение ещё.
Проблема в несоответствии типов, я не знаю как по другому сравнить TPicture с String
0
Почетный модератор
Эксперт С++
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,907
05.02.2016, 10:30 4
Цитата Сообщение от JustDaemon Посмотреть сообщение
но много примерно одинаковых строк, поэтому не позволяет запустить проект
Сколько б не было предупреждений, но пока нет именно ошибок, проект запустится.
Что же по поводу вашей записи:
Цитата Сообщение от JustDaemon Посмотреть сообщение
if ((Image2->Picture!="circle_black.jpg") && (Image2->Picture!="circle_green.jpg")
она не верна.
Вы сравниваете свойство Picture и текстовую строку. У строки тип String, а у свойства - TPicture. Их нельзя так сравнивать.


Как костыль, можно попробовать при загрузке картинки в Image, прописывать последнему в свойство Hint имя картинки и сравнивать уже его. При этом показ самого Hint желательно б выключить.

Лучше создать класс-обертку или перехватчик для TImage и добавить в него дополнительное поле для названия картинки.
1
0 / 0 / 1
Регистрация: 09.12.2015
Сообщений: 35
05.02.2016, 17:08  [ТС] 5
SatanaXIII, в программе ошибок нет, там именно предупреждения, лично у меня в билдере стоит что предел 100 предупреждений, пробовал больше поставить, он не хочет.
Ну я понимаю что нельзя, именно поэтому я и здесь))
Спасибо за советы)
0
4043 / 2332 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
11.02.2016, 01:40 6
Цитата Сообщение от JustDaemon Посмотреть сообщение
Ну я понимаю что нельзя, именно поэтому я и здесь))
Важно понять, что не просто нельзя. Просто нельзя - это заехать под кирпич - нельзя, но результат будет, как и возможное наказание. А в твоем случае запись не имеет никакого смысла. Ну вообще.
0
0 / 0 / 1
Регистрация: 09.12.2015
Сообщений: 35
11.02.2016, 11:07  [ТС] 7
BRcr, а кроме как осуждение, от вас можно услышать предложение/предложения?
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32991 / 21297 / 8180
Регистрация: 22.10.2011
Сообщений: 36,591
Записей в блоге: 8
11.02.2016, 11:11 8
Предложения уже были выше: написать класс-перехватчик для стандартного TImage, в который внести еще и поле для названия картинки, и потом сравнивать эти поля. Либо воспользоваться уже готовым свойством Tag, и для одинаковых картинок выставлять одинаковый Tag, и потом, при необходимости проверить одинаковость картинок - сравнивать эти теги между собой.

И что это дало? Нужен готовый код - так и скажи. А то ходят вокруг да около...
0
Практикантроп
4840 / 2725 / 533
Регистрация: 23.09.2011
Сообщений: 5,795
11.02.2016, 11:17 9
JustDaemon, а что еще не ясно? При загрузке картинки из файла (да и не только картинки) ни путь к файлу, ни его имя автоматом нигде не запоминаются. Материал получен - и адью. Поэтому программист должен сам такое предусматривать (как советовал SatanaXIII).
0
0 / 0 / 1
Регистрация: 09.12.2015
Сообщений: 35
11.02.2016, 23:17  [ТС] 10
volvo, я думал про Tag, не представляю как с ним работать при таком количестве картинок и проверок...
C++
1
2
3
4
5
6
7
8
9
10
if ((Image2->Picture!="circle_black.jpg") && (Image2->Picture!="circle_yellow.jpg")
   && (Image2->Picture!="circle_green.jpg") && (Image2->Picture!="circle_red.jpg")
   && (Image2->Picture!="circle_blue.jpg") && (Image2->Picture!="circle_pink.jpg")
   && (Image2->Picture!="circle_blackColor.jpg") && (Image2->Picture!="circle_purple.jpg")
   && (Image2->Picture!="circle_aqua.jpg"))
   {
   Image7->Top=Image17->Top; Image7->Left=Image17->Left;
   Image7->Visible=True;
   mciSendString("stop 1.wav ", "", 0,0);
   }
это лишь одна часть
0
Практикантроп
4840 / 2725 / 533
Регистрация: 23.09.2011
Сообщений: 5,795
11.02.2016, 23:34 11
Цитата Сообщение от JustDaemon Посмотреть сообщение
не представляю как с ним работать при таком количестве картинок
Tag - это 32 бита (целое); если с картинкой связать один бит (1 2 4 8 16 32 ...), то "просеивать" можно просто по маске одним действием (AND). Если 32 вариантов недостаточно - можно там хранить адрес переменной с бОльшим количеством вариантов.
0
Почетный модератор
Эксперт С++
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,907
12.02.2016, 09:36 12
JustDaemon, если у вас все картинки известны на стадии компиляции программы (то есть пользователь не будет выбирать сам и загружать какие-либо картинки в процессе работы программы), то целесообразнее все их загрузить в ImageList, и сравнивать уже по индексам.
0
12.02.2016, 09:36
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.02.2016, 09:36
Помогаю со студенческими работами здесь

Проверка загружено ли изображение
Здравствуйте! Подскажите почему не работает код procedure TForm1.Image8Click(Sender:...

Определить загружено ли в Image изображение
Подскажите, как сделать такое условие: if (в Image1 загружено изображение) then ...

Определить, какое изображение загружено в PictureBox
Здравствуйте! Нужно чтобы, если в PictureBox1 загружено изображение Image1.png, то в PictureBox2 и...

Считать файл из папки, откуда было загружено изображение
Как сделать что бы картинка загружалась в pictureBox, при этом путь где лежит картинка читается из...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru