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

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

TStreame: глюк или ошибка?


msalex ©   (2002-07-29 22:46:00) 

Почему у меня не получается выгрузить файл из потока процедурой
free.

procedure TForm1.Button1Click(Sender: TObject);
var
ZStm:TStream;
FileName: string[255];
Bitmap: TBitmap;
begin
try
ZStm:= TFileStream.Create("C:\test.bmp",fmOpenWrite,fmShareDenyWrite);
FileName:="Component";
Bitmap:= TBitmap.Create;
Bitmap.LoadFromFile("C:\Alex\bitmap.bmp");
Bitmap.SaveToStream(Zstm);
ZStm.WriteBuffer(FileName,sizeof(FileName));
FileName:="world";
ZStm.WriteBuffer(FileName,sizeof(FileName));
//ZStm.CopyFrom(MStm,MStm.Size);
except
Bitmap.Free;
ZStm.Free;
end;
end;


Sergey Zholob   (2002-07-31 13:52:00) [1]

Вот исправленный кусок твоего кода

var
ZStm:TStream;
FileName: string[255];
Bitmap: TBitmap;
begin
try
ZStm:= TFileStream.Create("C:\test.bmp", fmOpenWrite or fmShareDenyWrite);
FileName:="Component";
Bitmap:= TBitmap.Create;
Bitmap.LoadFromFile("C:\Alex\bitmap.bmp");
Bitmap.SaveToStream(Zstm);
ZStm.WriteBuffer(FileName,sizeof(FileName));
FileName:="world";
ZStm.WriteBuffer(FileName,sizeof(FileName));
//ZStm.CopyFrom(MStm,MStm.Size);
finally
Bitmap.Free;
ZStm.Free;
end;
end;

Ошибки:
1.Пропущен оператор OR в вызове TFileStream.Create;
Если у тебя файл "C:\test.bmp" не существует, то в первом вызове надо ставить fmCreatе (так надежнее), иначе fmOpenWrite (читай справку).
2.Вместо директивы "finally" стоит "except". А поскольку исключительной ситуации при нормальной работе не происходит, то управление в эту часть программы, конечно, не передается.


Юрий Зотов   (2002-07-30 00:59:00) [2]

http://delphi.mastak.ru/cgi-bin/forum.pl?look=1&id=1027862770&n=0


Наверх

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