Aptem |
Отправлено: 26.08.2005, 07:14 |
|
Мастер участка
Группа: Участник
Сообщений: 349
|
Привет всем.
Есть проблема:
На форме лежит скроллбокс, мне необходимо динамически добавлять туда картинки (я так думаю через компаненту TImage), что-то вроде панели с thumbs слева в FineReader 6.
Как создать нужное количество экземпляров TImage, если заранее не известно их количество? Создать массив такого типа не получилось, нет такого конструктора!
Спасибо за внимание.
|
|
AVC |
Отправлено: 26.08.2005, 08:37 |
|
Ветеран
Группа: Модератор
Сообщений: 1583
|
QUOTE |
Как создать нужное количество экземпляров TImage, если заранее не известно их количество? Создать массив такого типа не получилось, нет такого конструктора!
|
???
Создавать динамически.
Что не получилось-то, создать динамический массив указателей? |
|
GIZMO |
Отправлено: 26.08.2005, 10:07 |
|
Машинист паровоза
Группа: Участник
Сообщений: 174
|
QUOTE (Aptem @ 26/08/2005, 07:14) | Привет всем.
Есть проблема:
На форме лежит скроллбокс, мне необходимо динамически добавлять туда картинки (я так думаю через компаненту TImage), что-то вроде панели с thumbs слева в FineReader 6.
Как создать нужное количество экземпляров TImage, если заранее не известно их количество? Создать массив такого типа не получилось, нет такого конструктора!
Спасибо за внимание. |
CODE |
TList *ListImage = new TList();
|
|
|
gvg |
Отправлено: 26.08.2005, 11:47 |
|
Машинист паровоза
Группа: Участник
Сообщений: 222
|
Или тот-же TImageList использовать... |
|
Aptem |
Отправлено: 26.08.2005, 12:13 |
|
Мастер участка
Группа: Участник
Сообщений: 349
|
QUOTE (gvg @ 26/08/2005, 11:47) | Или тот-же TImageList использовать... |
Не понял? Это же не визуальный компанент или я че-то не понимаю?
|
|
Иван |
Отправлено: 26.08.2005, 12:27 |
|
Машинист паровоза
Группа: Участник
Сообщений: 207
|
вот тут написано более менее подробно
http://ad.cctpu.edu.ru/SSP/Prof/Glava5/Index5.html
|
|
gvg |
Отправлено: 26.08.2005, 13:29 |
|
Машинист паровоза
Группа: Участник
Сообщений: 222
|
TImageList — для учета картинок. Для отображения картинок брось на ScrollBox PaintBox и выводи на него, не забывая увеличивать высоту PaintBox-а и ScrollBox->VertScrollBox->Range. |
|
Aptem |
Отправлено: 29.08.2005, 07:58 |
|
Мастер участка
Группа: Участник
Сообщений: 349
|
QUOTE (gvg @ 26/08/2005, 13:29) | TImageList — для учета картинок. Для отображения картинок брось на ScrollBox PaintBox и выводи на него, не забывая увеличивать высоту PaintBox-а и ScrollBox->VertScrollBox->Range. |
Спасибо за ответы!
А как на PaintBox вывести сразу несколько картинок?
Отредактировано Aptem — 29/08/2005, 07:59
|
|
Aptem |
Отправлено: 29.08.2005, 08:07 |
|
Мастер участка
Группа: Участник
Сообщений: 349
|
... и еще
Вот я создал список указателей:
CODE | TList *Thumbs = new TList (); |
Затем помещаю туда TImage:
CODE | TImage *Image = new TImage ();
Thumbs -> Add ( Image ); |
Вроде бы поместил, потом пытаюсь обратиться к элементу списка:
CODE | for ( int i = 0; i < Thumbs -> Count; i++ )
{
Thumbs -> Items[i] -> Top = 100;
Thumbs -> Items[i] -> Left = 100;
} |
Вот здесь он и начинает ругаться при компиляции!
CODE | Structure required on left side of -> or ->* |
Как же обратиться к элементу TList'а?
|
|
gvg |
Отправлено: 29.08.2005, 08:11 |
|
Машинист паровоза
Группа: Участник
Сообщений: 222
|
У PaintBox тоже есть Canvas. На нем можно выводить чего угодно, и сколько пожелаешь. В help-е примеров достаточно...
В принципе, может и не PaintBox, и TImage положить, но одну на всех. А уже в нее пиши квадратики со своими картинками...
Отредактировано gvg — 29/08/2005, 08:27 |
|
gvg |
Отправлено: 29.08.2005, 08:31 |
|
Машинист паровоза
Группа: Участник
Сообщений: 222
|
TList — список указателей. Он понятия не имеет, на что указывает, поэтому не снает ни про Top, ни про Left. Нужно привести к тому виду, как надо: ((TImage*)List->Items[i])->Top
Отредактировано gvg — 29/08/2005, 08:33 |
|