Необходимо создать компонент реализующий массив изображений. Грубо говоря 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 и тп =( Помогите пожалуйста
Если надо, могу выложить полный текст компонента, он небольшой