![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сохранить набор иконок в 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()