Консультация № 87628
19.05.2007, 15:48
0.00 руб.
0 2 2
Как написать цикл чтобы загрузилось несколько картинок из одного файла???

Обсуждение

Неизвестный
19.05.2007, 16:39
общий
это ответ
Здравствуйте, Nezzer!

Судя по вопросу у Вас есть несколько компонентов типа <i>TImage</i>, и Вам необходимо в них занести данные из одного файла. Т.е. если у Вас эти объекты носят имена Image1, Image2, Image3, Image4 то код который загрузит картинку из одного файла в них будет выглядеть так:

<pre style=line-height:70%;>procedure TForm1.BitBtn1Click(Sender: TObject);
var i:integer;
begin
for i:=<b>1</b> to <b>4</b> do
TImage(FindComponent(format(‘Image%d‘,[i]))).Picture.LoadFromFile(‘file.bmp‘);
end;
</pre>

Код выполнится по нажатию на кнопку <i>BitBtn1</i> и соответственно загрузит картинку из файла с названием <i>file.bmp</i>.

Good Luck!!!
Неизвестный
21.05.2007, 14:00
общий
это ответ
Здравствуйте, Nezzer!

Все зависит от того какого типа картинки вы хотите использовать. И какое содержимое вы будете хранить в файле. Самый простой это использование bmp файлов. Соединить их можно TotalCommander‘om. Что-бы загрузить файлы, нужно знать длину каждого сегмента данных.



Приложение:
procedure TForm1.FilenameEdit1Change(Sender: TObject);var ImgFileStream, PartStream: TStream; tmpBitmap: TBitmap;Const Length = $1036;begin ImgFileStream := TFileStream.Create(FilenameEdit1.FileName, fmOpenRead); PartStream := TMemoryStream.Create; tmpBitmap := TBitmap.Create; try PartStream.CopyFrom(ImgFileStream, Length); PartStream.Seek(soFromBeginning, 0); tmpBitmap.LoadFromStream(PartStream); Image1.Picture.Bitmap.Assign(tmpBitmap); PartStream.Seek(soFromBeginning, 0); PartStream.CopyFrom(ImgFileStream, Length); PartStream.Seek(soFromBeginning, 0); tmpBitmap.LoadFromStream(PartStream); Image2.Picture.Bitmap.Assign(tmpBitmap); PartStream.Seek(soFromBeginning, 0); PartStream.CopyFrom(ImgFileStream, Length); PartStream.Seek(soFromBeginning, 0); tmpBitmap.LoadFromStream(PartStream); Image3.Picture.Bitmap.Assign(tmpBitmap); finally ImgFileStream.Free; tmpBitmap.Free; PartStream.Free; end;end;
Форма ответа