TmemoryStream BitMap

Общие вопросы: версии и диалекты, синтаксис языка, cтруктуры и типы данных (массивы, строки, списки...), обработка данных и т.д.
Ответить
malkhazi
Сообщения: 6
Зарегистрирован: 28 авг 2013, 19:44

04 янв 2014, 13:01

Здравствуйте, подскажите пожалуйста где допускаю ошибку:

Код: Выделить всё

procedure TForm1.Button1Click(Sender: TObject);
var
btl : Graphics.tbitmap;
stream : tmemoryStream;
p : pointer;
dc : hdc;
mainSize : Integer;
begin

try

dc := GetDC(0);

btl := graphics.TBitmap.Create;
btl.Width := screen.Width;
btl.Height := screen.Height;

BitBlt(btl.Canvas.Handle, 0, 0, screen.Width, screen.Height, dc, 0, 0, SRCCOPY );

{
stream := TMemoryStream.Create;

btl.SaveToStream(stream);
mainSize := stream.Size;

GetMem(p, mainSize);

stream.Write(p^, stream.Size);

stream.Position := 0;

stream.Read(p^, mainSize);

btl.LoadFromStream(stream);
}

if btl <> nil then
image1.Picture.Assign(btl);

finally

// stream.Free;
// FreeMem(p);
btl.Free;


end;

end;

end.
Если уберу {} и // то Выдает ошибку "Bitmap Image is not Valid".

Что-то формате, но на понял что конкретно.
Ответить