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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как сравнить два TPicture из VCL? 
:(
    Опции темы
Chaos A.D.
Дата 16.6.2005, 10:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 172
Регистрация: 16.1.2005
Где: 09 RUS

Репутация: 6
Всего: 7



Знатоки VCL, подскажите, как Borland реалиизует работу с картинками? На определенное событие я меняю у моего TImage свойство Picture. Builder хитрит с членами данных, незаметно подсовывая вместо них функции типа Set и Get. И по этому, если выполнить код:

Код

TPicture *MyNewPicture = new TPicture;
MyNewPicture->LoadFromFile("some_file");
MyForm->MySuperImage->Picture = MyNewPicture;

... не выполняется условие, что MyForm->MySuperImage->Picture == MyNewPicture.

Вопрос то собственно в чем - как не вводя в программу дополнительных флагов, узнать, что картинка в TImage равна экземпляру TPicture? Пробовал сравнивать ...->Picture->Bitmap-ы, и ...->Picture->Canvas-ы. Также не работает сравнение указателей на такие члены TPicture, как Graphics, Metafile. Может все-же есть способ?
--------------------
Надо смеяться над тем, что тебя мучит, иначе не сохранишь равновесия, иначе мир сведет тебя с ума...Ken Kesey - One Flew Over The Cocoo's Nest
PM MAIL   Вверх
comcon1
Дата 16.6.2005, 11:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 11.6.2005
Где: Москва ДАС-МГУ

Репутация: 12
Всего: 17



Погоди. А type-cast не пробовал?? Посмотри, какая там иерархия..
Я уже не помню, в Builder-e или Delphi давно не сидел.. Но вот, что можно посоветовать (из общих соображений).

Вот по поводу того, что он хитрит - определи для начала, создает ли он новый объект с указателя MyForm->MySuperImage->Picture и копирует туда твой, или он действительно всего лишь указатель на тот же объект, куда указывает MyNewPicture.

Для этого после присваивания загрузи в MyNewPicture какой-нибудь другой файл и посмотри, изменилось ли че на форме.

Если первое - то надо искать или делать функцию сравнения двух изображений (искать где-нить в классах Image, Picture, Canvas, где-нить там). А если второе - хрен знает, что, кроме type-casta посоветовать....

Попробуй. Если других более конкретных советов не будет smile smile .


--------------------
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0391 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.