Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Двумерный ImageList [D6, Win2k]


Сатир ©   (2002-11-28 21:55:00) 

Подкиньте пару идей для реализации сабжа на основе методов и свойств класса TImageList. Создавать наследника от TCustomImageList не предлагать. Долго реализовывать, да и не охота возиться с остальными административными заморочками, типа регистрации и проч.
Вообщем, вопрос к тем, кто может сталкивался с такой проблеммной, когда одного измерения для доступа у коллеции картинок не достаточно, например, для двумерного стрингрида проще вытягивание картинок для каждой ячейки проще реализовать из сабже, чем разбивать линейный список на измерения и высчитывать каждый раз порядковый номер, а если список динамичный?
Отвечать, плз, по существу.


Сатир   (2002-11-29 14:50:00) [1]

2TTCustomDelphiMaster © (28.11.02 22:04)
спасибо, но это не годится.
Во-первых, не удобно каждый раз инициализировать каждый заново созданный элемент .
Во-вторых, хотелось бы присваивать свойствам, которые требуют коллекцию картинок, один объект и то, на стадии разработки. А вот его наполнение и перемещение, на стадии выполнения.

2ЮЮ © (29.11.02 03:50)
это уже теплее, но вот проблемма:
//определить в начале программы
Я же не знаю, сколько будет заранее столбцов и строчек, к тому же необходимо учесть поддержку метода TImageList.Replace для редактирования картинок. А следовательно, нужно будет реализовывать обратный переход от плоской до линейной индексации.:(


ЮЮ   (2002-11-29 03:50:00) [2]

var
ImageIndexes: array of array of Integer;

//определить в начале программы
SetLength(ImageIndexes,2);
SetLength(ImageIndexes[0],1);
ImageIndexes[0][0] := 5;
SetLength(ImageIndexes[1],2);
ImageIndexes[1][0] := 3;
ImageIndexes[1][1] := 4;

И ничего вычислять уже не надо будет
image_index := ImageIndexes[row_type, col_number],
естественно в коде ты должен знать, какой значок тебе нужен





TTCustomDelphiMaster   (2002-11-28 22:04:00) [3]

array of TImageList


Наверх

Титульная страница Поиск, карта сайта Написать письмо