Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Сохранить набор иконок в 1 файле [D4, Win95/98]


_Nicola_ ©   (2002-11-05 17:45:00) 

Я надергал с помощью ExtractIcon иконок из файлов и занес их в ImageList. Как мне сохранить этот ImageList, чтобы при повторном запуске приложения не дергать их из файлов, а загрузить в ImageList? Можно, конечно, в виде набора ico-файлов, но мне этот способ не подходит. Ответьте, пожалуйста, как можно еще?

Спасибо.


_Nicola_   (2002-11-06 11:47:00) [1]

2Дмитрий К.К.
Спасибо! Использую глобальные процедуры WriteComponentResFile/ReadComponentResFile - и файл меньше по размерам, чем bmp, и суеты меньше.

2ALL
Если есть еще какие-нибудь способы сохранения/восстановления картинок в ImageList в/из 1 файла - поделитесь, пожалуйста.


Дмитрий К.К.   (2002-11-06 11:27:00) [2]

WriteComponentRes / ReadComponentRes


_Nicola_   (2002-11-06 11:20:00) [3]

2KoluChi
Объясню еще раз, что мне надо.
В Runtime я указываю файл, из него с помощью ExtractIcon извлекается иконка, заносится в ImageList с помощью ImageList1.AddIcon и отображается (уже из ImageList) на кнопках в ToolBar. Это все работает замечательно и так, как надо.
Нужно, чтобы при повторном запуске программы не пришлось снова лазить по файлам и опять доставать иконки, а сохранить ImageList в файле и потом загрузить из файла в том же виде.
Я попробовал сохранять в bmp, получая изображение с помощью GetImageBitmap (по совету pusrg), но при загрузке иконки оказываются запорченными.
Если использовать при восстановлении из файла bmp AddMasked, то опять же получается не первоначальный вид.

Тогда такой вопрос: как сохранить ВЕСЬ компонент ImageList в файле? (и потом восстановить).


KoluChi   (2002-11-06 11:05:00) [4]

При добавлении иконок в ImageList попробуй использовать
function AddMasked(Image: TBitmap; MaskColor: TColor): Integer;


_Nicola_   (2002-11-06 10:51:00) [5]

2pusrg
Получилось, но не совсем так, как хотелось бы. При сохранении по вашему способу, в файл, помимо иконок, пишется какой-то мусор, и потом при загрузке в ImageList иконки оказываются подпорченными. Как-то нужно использовать маску. Я попробовал использовать аналогично GetMaskBitmap, но при попытке сохранения ее в файл возникает ошибка Out of Resource. Т. е. GetImageBitmap - работает, а GetMaskBitmap - не работает. Есть ли какие-нибудь соображения?

2Mr. API
Это я знаю, но я в вопросе написал, что в виде набора ico-файлов мне не подходит.


Mr. API   (2002-11-05 19:34:00) [6]

Если точно помню, то:
Создаешь объект типа TIcon у него есть свойство Handle, этому свойству присваиваешь ExtractIcon. И методом SaveToFile.


pusrg   (2002-11-05 18:31:00) [7]

Читайте хелп:

Returns a handle to a bitmap containing all of the images in the image list.

function GetImageBitmap: HBITMAP;

Description

Use the GetImageBitmap method to obtain a bitmap that contains all images in the image list. GetImageBitmap returns 0 if unsuccessful.

Полученный битмап, потом сохраняете.


_Nicola_   (2002-11-05 18:06:00) [8]

2KoluChi
Интересно, а как можно можно в Runtime дважды кликнуть на ImageList?


KoluChi   (2002-11-05 18:03:00) [9]

Дважды кликни на ImageList, нажми на Export, сохрани в файл.
В программе используй FileLoad()


Наверх

Титульная страница Поиск, карта сайта Написать письмо