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