|
Вопрос # 1 690/ вопрос решён / |
|
Здравствуйте, эксперты!
Тут вот какое дело . есть обычный обьект(image) а так же команда :
imageX.Picture.LoadFromFile('n');
где Х-неитересующее дело число, а N -путь.
впринципе все легко присвоить компаненту картинку из файла N.
Но сам вопрос следующий : есть ли способ из кучи картинок(файлов Nтипа) сделать один файл, с возможностью из него "вытаскивать" нужную картинку.
 |
Вопрос задал: TeM (статус: Посетитель)
Вопрос отправлен: 14 июня 2008, 22:43
Состояние вопроса: решён, ответов: 2.
|
Ответ #1. Отвечает эксперт: Вадим К
Здравствуйте, TeM!
Как раз для этого дела существует компонент TImageList. Вначале нужно указать ему свойства Width и Height, которые укажут размеры "ячеек". Этот компонент может разбить и даже если картинки не лентой, а столбиком или несколько на несколько.
Следующим этапом будет загрузка.
ImageList1.FileLoad(rtIcon, путь, фоновый цвет);
Пусть не смущает слово rtIcon, и не пытайтесь туда запхать rtBitmap. В противном случае картинка будет грузиться в 16 цветном режиме - а это в наши планы не входит.
Теперь можно например нарисовать картинку на канве
ImageList1.Draw(Form3.Canvas,24,0,1);
Это значит нарисовать на третей форме, с координатами (24, 0) вторую картинку с списка. (помним, нумерация с нуля!).
Если нужно перенести на Image - поступаем аналогично - просто рисуем на нем, точнее на ImageX.Canvas. Ну и не забываем вначале указать размеры картинки для TImage.
 |
Ответ отправил: Вадим К (статус: Академик)
Время отправки: 15 июня 2008, 01:02
Оценка за ответ: 5
|
Ответ #2. Отвечает эксперт: ANBsoft
Здравствуйте, TeM!
Если картинки делаются один раз и их список не меняется, то можно будет добавить их как ресурс в программу и загружать через LoadFromResourceName(HInstance,'N'). В отличие от варианта с TImageList каждая картинка может иметь свой размер. Если предполагается менять набор картинок, то нужно будет создать аналогичный файл контейнер и скомпилировать в него все картинки.
Если же это например иконки, имеющие одинаковый размер, то тогда наилучший вариант с TImageList.
 |
Ответ отправил: ANBsoft (статус: Студент)
Время отправки: 15 июня 2008, 13:28
Оценка за ответ: 5
|
Мини-форум вопроса
Всего сообщений: 2; последнее сообщение — 15 июня 2008, 22:00; участников в обсуждении: 2.
|
TeM (статус: Посетитель), 15 июня 2008, 21:53 [#1]:
Вот мне интересно - В задумке сделат один файл из который содержит 10-15 одинаковых картинок(по размерам) и из него подгружать нужные
что то вроде этого элимента: (Внешне напоминает имейдж лист )
form5.image7.Picture:=(jvImagesViewer1.Items[JvImagesViewer1.SelectedIndex].Picture);
Так вот -я прошу другое нежели мне ответили или я просто не понял правельно того что мне ответили?.
|
|
Вадим К (статус: Академик), 15 июня 2008, 22:00 [#2]:
TeM - внимательней присмотритесь к тому, что я неписал. это как раз то, что вы и хотите.
Галочка "подтверждения прочтения" - вселенское зло.
|
31 января 2011, 19:31: Статус вопроса изменён на решённый (изменил модератор Ерёмин А.А.): Автоматическая обработка (2 и более ответов с оценкой 5)
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|