![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Необходимо создать компонент реализующий массив изображений. Грубо говоря ImageList, но для полноценных изображений, а не иконок. Я решил сделать следующим образом - компонент потомок TImage, с доп полями:
Код:
v_imageIndex:integer; v_imageList:TStringList; где первое - номер выводимой картинки, второе - список адресов остальных картинок. Логика подразумевалась следующая - при изменении индекса запускается Picture.LoadFromFile(v_imageList[<новый индекс>]); Однако оказалось, что Picture у TImage лежит в области Private и обратиться к нем невозможно. Попробовал добавить свой: Код:
v_picture: TPicture; published property Picture: TPicture read v_picture write SetPicture; Реализовал логику: Код:
procedure xImageList.IndexPaint(ind: Integer); begin v_imageIndex:=ind; v_picture.LoadFromFile(v_imageList[ind]); width:=v_picture.Width; height:=v_picture.Height; end; Но при работе с компонентом не происходит ровным счётом ничего =( что-то мне подсказывает, что всё из-за того, что не родной Picture и не запускаются родные Paint и тп. Подскажите как это обойти и что вообще делать? Не писать же свои методы Paint и тп =( Помогите пожалуйста Если надо, могу выложить полный текст компонента, он небольшой |