Поиск:

Ответ в темуСоздание новой темы Создание опроса
> TImage и массив ссылок на него, Или новые приключения Буратино... 
:(
    Опции темы
SydeX
Дата 28.11.2005, 16:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 3.11.2004
Где: Таллинн, Эстония

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



Приветсвтую люди добрые.
Вот какой вопрос.
Есть у меня 9 картинок - стоящих в три ряда.
(что-то типа галлереи)
Проблем, будучи жутко ленивым во всех процедурах которые работают с этим гридом прописывать имя каждого по миллиону раз лень.
Сделан массив ссылок на каждый из элементов:

TImage * MyImages;
TImage MyImages[0] = Form55->Image1;
TImage MyImages[1] = Form55->Image2;
...
etc.

Вроде всё работает - ссылки сохраняются, если меняешь корневые проперти класса TImage тоже всё хоккей, (ну вроде визибл, не-визибл етс).
Самое интересное начинается потом - когда нужно загрузить в них картинку.
Если обращаюсь по массиву - MyImages[0]->Picture->Bitmap->LoadFromStream(MyStream);
Моментально ловлю эксепшн.
При этом, если загружаю Image1->Picture->Bitmap->LoadFromStream(MyStream);

Дело проходит без проблем.
smile smile smile
Думал может каким то образом не инициализируются элементы класса.
Пробовал так:
MyImages[0]->Picture = new TPicture();
MyImages[0]->Picture->Bitmap = new Graphics::Bitmap();
MyImages[0]->Picture->Bitmap->LoadFromStream(MyStream);
при этом ловлю эксепшн всё в том же месте.

Я в тупике.
Может кто нибудь может объяснить, что ему не нравится ?
PM MAIL WWW ICQ   Вверх
_hunter
Дата 28.11.2005, 16:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 24
Всего: 98



а сам Image кто создавать будет?
+ запись
TImage MyImages[0] = Form55->Image1;
абсолютно неправильная: ты в каждой строке создаеш по массиву.


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
SydeX
Дата 28.11.2005, 16:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 3.11.2004
Где: Таллинн, Эстония

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



Погодь _hunter,

В каком плане сам Image ?
Я же не создаю новую картинку - я создаю ссылку на имеющийся объект.

С массивом ляп понял. Спасибо.
PM MAIL WWW ICQ   Вверх
_hunter
Дата 28.11.2005, 16:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 24
Всего: 98



ссылка то ссылка, но что будет если ты форму закроеш? ( или у тебя код этот в той же форме? )
+ зачем, в таком случае, Picture ( и Bitmap ) создавать? -- они уже в предке созданы должны быть.


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
SydeX
Дата 28.11.2005, 17:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 3.11.2004
Где: Таллинн, Эстония

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



Ну закрою - и открою снова, что должно измениться ?
Код в той же форме - объект создаётся по FormCreate при загрузке приложения. Сам по себе никуда не девается закрыта ли форма или нет...
кстати,
ImageGrid[0] = Form55->Image1;
с ссылками...так и не понял
Эта строчка (где ImageGrid это тот же MyImages) чем он тебе так не угодил ?
Это же массив ссылок (* * - по сути)
Где каждая ссылка приравнивается к ссылке на класс. То есть получается массив ссылок на классы.
(TImage * Image1 по определению в Form55.h является соответственно ссылкой на класс)

Это сообщение отредактировал(а) SydeX - 28.11.2005, 17:11
PM MAIL WWW ICQ   Вверх
_hunter
Дата 28.11.2005, 17:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 24
Всего: 98



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


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


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

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


 




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


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

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