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

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

Как сохранить список картинок из ImageList’а в один файл?


MAN-IN-RED ©   (2002-06-20 14:06:00) 

Как сохранить список картинок из ImageList’а в один файл, а потом загрузить его?


sergio2204   (2002-06-20 17:31:00) [1]

procedure SaveImageListToFile(ImageList: TImageList; FileName: string);
var
B: TBitmap;
i: Integer;
S: TFileStream;
begin
S := TFileStream.Create(FileName, fmCreate);
try
for i := 0 to ImageList.Count - 1 do begin
B := TBitmap.Create;
try
ImageList.GetBitmap(i, B);
B.SaveToStream(S);
finally
B.Free;
end;
end;
finally
S.Free;
end;
end;

procedure LoadImageListFromFile(ImageList: TImageList; FileName: string);
var
B: TBitmap;
S: TFileStream;
begin
S := TFileStream.Create(FileName, fmOpenRead);
try
while S.Position < S.Size do begin
B := TBitmap.Create;
try
B.LoadFromStream(S);
ImageList.Add(B, nil);
finally
B.Free;
end;
end;
finally
S.Free;
end;
end;


Kaban   (2002-06-20 16:36:00) [2]

О как значит можно


McSimm   (2002-06-20 16:34:00) [3]

Сохранить в один файл можно так:
B := TBitmap.Create;
try
B.Handle := ImageList1.GetImageBitmap;
B.SaveToFile("c:\bbb.bmp");
finally
B.Free
end

Прочитать -
B := TBitmap.Create;
try
B.LoadFromFile("c:\bbb.bmp");
ImageList1.Clear;
ImageList1.Add(B, nil);
finally
B.Free
end


Skier   (2002-06-20 16:28:00) [4]

> Man-In-Red
Может имеет смысл хранить все
картинки в RES-файле и оттуда их брать
через ResInstLoad


Kaban   (2002-06-20 16:27:00) [5]

Да нафига все эти извращения
Если уж сами написать не можете:

BitMap:=TBitMap.Create;
BitMap.Height:=IconHeight;
BitMap.Width:=IconWidth * IconCount;
for i:=0 to IconCount-1 do
ImageList1.Draw(BitMap.Canvas,i * IconWidth, 0 , i, true)

BitMap.SaveToFile("На хрена это все нужно.bmp");
BitMap.Free;


Man-In-Red   (2002-06-20 16:21:00) [6]

Есть маленькая идейка… но нужна помощь в ее реализации…
Можно затянуть в это все дело listBox, и в него добавлять имена и пути к картинкам из ImageList’а, потом сохранить лист, при запуске загрузить, а вот тут есть вопрос – как теперь в ImageList добавить все картинки имена которых в ListBox’е?
Нужна помощь…


Man-In-Red   (2002-06-20 16:14:00) [7]


> А это не геморой изменять иконки на кнопках.

Их там всего 300... :)


Kaban   (2002-06-20 16:09:00) [8]

Ну если уж на то пошло то можно и в отдельных файлах хранить.
А это не геморой изменять иконки на кнопках.


Man-In-Red   (2002-06-20 16:04:00) [9]


> Kaban © (20.06.02 15:57)
> ну тогда см. первую подсказку. Можно узнать почему это обязательно

На форме лежит ToolBar, у него есть свойство images… оно у меня равняется ImageList1,
Теперь все кнопки в ToolBar’е будут вытягивать нужную картинку из ImageList’a, но эти картинки нужно изменять в run-time, после этого, список нужно сохранить, а при следующем запуске загрузить!
Вот в этом та и вся трабла!


Kaban   (2002-06-20 15:57:00) [10]

ну тогда см. первую подсказку. Можно узнать почему это обязательно


Man-In-Red   (2002-06-20 15:56:00) [11]

Обязательно программно!


Kaban   (2002-06-20 15:45:00) [12]

Кстати если не программно, щелкни правой кнопкой мыши на ImagList и выбери команду save to file


Kaban   (2002-06-20 15:44:00) [13]

Обязательно программно? Тогда зачем?
Впрочем все равно можно сделать нужных размеров BitMap, скопировать туда иконки и записать в файл.


MAN-IN-RED   (2002-06-20 15:40:00) [14]

Помогите же пожалуйста!


Наверх

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