![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Двумерный 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