![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Подскажите , где грабли ! Пожалуйста [D6]
Polluks © (2002-12-20 13:48:00)Этот код работает на таймере и спустя 125 циклов валится ошибка недостаточно памяти.
var
bmp: TBitmap;
jpgImg: TJPEGImage;
begin
bmp := TBitmap.Create;
try
bmp.Width := Screen.Width;
bmp.Height := Screen.Height;
BitBlt(bmp.Canvas.Handle, 0, 0, Screen.Width, Screen.Height,
GetDC(GetDesktopWindow), 0, 0, SRCCopy);
Clipboard.Assign(bmp);
finally
bmp.Free;
end;
Image1.Picture.Bitmap.LoadFromClipboardFormat(cf_BitMap,ClipBoard.GetAsHandle(cf_Bitmap),0);
jpgImg := TJPEGImage.Create;
jpgImg.Assign(Image1.Picture.Bitmap);
jpgImg.SaveToFile(‘c:\screen+".jpg");
end;
Diamond Cat (2002-12-21 14:20:00) [1]да вобщем и tbitmap надо освобождать, и вообще надо взять за правило , что все что насоздавал сам , сам и рушишь
Diamond Cat (2002-12-21 14:20:00) [2]ой звиняй битмап ты освобождаешь
Polluks (2002-12-20 15:03:00) [3]Спасибо брателло.
Digitman (2002-12-20 13:55:00) [4]На пара граблей ты уж точно наступаешь)
1. Нет ReleaseDC() после GetDC()
2. Нет jpgImg.Free после jpgImg := TJPEGImage.Create;