Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 1 580

/ вопрос открыт /

Здравствуйте, уважаемые эксперты!
Возможно ли в ТImageList загрузить JPG картинку напрямую (то есть интерфейс делфи, а НЕ программно - ImageList Editor).
Существуют усовершенствованные ТImageList c вышеуказанной возможностью?

п.с. у меня программа использует JPG картинки, загружаю их через ImageList, от использования ресурсов (загрузки JPG из ресурса) отказался.

Phoenix Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Phoenix (статус: Посетитель)
Вопрос отправлен: 13 мая 2008, 18:15
Состояние вопроса: открыт, ответов: 1.

Ответ #1. Отвечает эксперт: ANBsoft

Здравствуйте, Phoenix!
Открываем помощь (F1) для ImageList и читаем описание метода Add:
Adds an Image and its Mask to the image list object.
function Add(Image, Mask: TBitmap): Integer;
Description
Use the Add method to add images with their masks to an image list. It returns the index of the added image, or -1 if it fails. When the Masked property of the image list is False, the second bitmap handle is ignored; it can be set to nil.
Это то что нужно, рядом есть описание других методов.

Ответ отправил: ANBsoft (статус: Студент)
Время отправки: 13 мая 2008, 18:55


Мини-форум вопроса

Всего сообщений: 13; последнее сообщение — 15 мая 2008, 08:41; участников в обсуждении: 4.
ANBsoft

ANBsoft (статус: Студент), 13 мая 2008, 18:57 [#1]:

Если нужно добавить в самом делфи - щелкаем двойным щелчком на компоненте и добавляем.
Phoenix

Phoenix (статус: Посетитель), 13 мая 2008, 21:32 [#2]:

в том, то и дело, меня не устраивает стандартный ImageList Editor, в него можно загружать только битмапы и иконки!!! мне нужна загрузка JPEG.
программный метод загрузки JPEG в ImageList мне известен.
Вопрос в силе! Говоря проще мне надо "в самом делфи - щелкуть двойным щелчком на компоненте и загрузить JPEG", а НЕ бмп или ико

п.с. у меня Делфи 7 к сведению. может ImageList Editor 2006-го и умеет добавлять жпги или пнг, я не в курсе.
Вадим К

Вадим К (статус: Академик), 13 мая 2008, 22:47 [#3]:

TImageList не предназначен для добавления jpeg картинок в него - они не поддерживают маски и просто это не назначение этого компонента.
Основоное назначение - список картинок для меню/тулбаров. А тут прижились bmp/ico. jpeg никак не лезит.

Может намекнёте, с какой целью вам это надо?
Галочка "подтверждения прочтения" - вселенское зло.
ANBsoft

ANBsoft (статус: Студент), 14 мая 2008, 00:54 [#4]:

А почему отказались от загрузки из ресурсов?
Dron

Dron (статус: Студент), 14 мая 2008, 11:44 [#5]:

Если хотите обращаться к картинкам по индексам, как в ImageList - создайте массив картинок. Что-то вроде этого:
var Images: array of TPicture;
Загрузку картинок в такой массив организовать проще простого. И обращаться удобно.
С уважением.
Phoenix

Phoenix (статус: Посетитель), 14 мая 2008, 16:48 [#6]:

все это мне нужно для хранения в главном исполняемом файле программы картинок большого разрешения (а как известно битмап - несжатый формат), отсюда получается большой рамер рисунка, а если их несколько, размер ехе увеличится в 7-10 раз!
ресурсы не использую от того, что их легко вынуть или "расковырять" любой рес-ютилитой, а с методами криптования и паковки я мало знаком (точнее некоторые их надёжные комбинации приводят к неработоспособности программы)
Dron

Dron (статус: Студент), 14 мая 2008, 18:39 [#7]:

Вообще-то, хранение любых файлов приведёт к увеличению объём конечного исполняемого файла, а кроме того, и скорости запуска программы. Короче говоря, способ выбран неудачный. Если хотите защитить файлы и не использовать ресурсы - храните картинки в зашифрованном виде во внешних файлах и подгружайте их оттуда, предварительно раскодировав. Примеров по кодированию в сети можно найти достаточно.
С уважением.
Вадим К

Вадим К (статус: Академик), 14 мая 2008, 21:09 [#8]:

Я бы сказал, что хранение в ImageList нисколько не усложнит "добычу картинок".
Во-вторых, хранение в выполняемом файле замедлит загрузку формы, а не приложения если конечно эта форма не есть автосоздаваемой. Но даже в этом случае заметное торможение будет при нескольких мегабайтах.
И на последок - надо будут картинки - вытянут. Картинки надо не так защищать. Если это действительно ваши картинки, которые вы рисовали, то оформляйте авторские права на них. Если же это "чесно украденные", то я не понимаю вашего стремления.
Галочка "подтверждения прочтения" - вселенское зло.
Phoenix

Phoenix (статус: Посетитель), 15 мая 2008, 00:14 [#9]:

картинки действительно авторские, рисованые от руки. если не составит труда, поделитесь способом защиты картинок в тех же ресурсах. загружать картинки из сторонних файлов стараюсь избегать, программа будет распространятся как один единственный ехе.
Вадим К

Вадим К (статус: Академик), 15 мая 2008, 01:27 [#10]:

Лучше зарегистрируйте авторские права на картинки. и всё.
А защищать - сломают. Это не то, что нужно защищать.
Распространять одним файлом - не думаю, что это хорошо. Это скорее хуже.
о авторском праве в России можно почитать тут
http://ru.wikipedia.org/wiki/Авторское_право
и тут
http://www.copyright.ru/ru/documents/avtorskoe_pravo/
Галочка "подтверждения прочтения" - вселенское зло.
ANBsoft

ANBsoft (статус: Студент), 15 мая 2008, 01:34 [#11]:

Защищать бесполезно, самый простой вариант - можно прямо с экрана сграбить, вообще не копаясь в программе, а если защищать, то изучить водяные знаки и прочее. Но это защита по закону, а у нас принято плевать на закон.
Так что в данном случае медицина, похоже, бессильна.
Phoenix

Phoenix (статус: Посетитель), 15 мая 2008, 08:05 [#12]:

Все, думаю нечего больше мне тут мудрить, благодарю за объективные ответы
Dron

Dron (статус: Студент), 15 мая 2008, 08:41 [#13]:

Распространять программу одним файлом можно (и нужно) в любом случае - сделав для неё инсталлятор. И сколько там файлов используются - 2 или 1000 - абсолютно неважно.
С уважением.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:55
Выполнено за 0.03 сек.