|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
AV При попытке загрузить BMP
Снова привет.
Объясните недалекому. Есть: Код:
function CaptureScreenRect( ARect: TRect ) : TBitmap; var ScreenDC: HDC; begin Result := TBitmap.Create; Result.Width := ARect.Right - ARect.Left; Result.Height := ARect.Bottom - ARect.Top; ScreenDC := GetDC( 0 ); try BitBlt ( Result.Canvas.Handle, 0, 0, Result.Width, Result.Height, ScreenDC, ARect.Left, ARect.Top, SRCCOPY ); finally ReleaseDC( 0, ScreenDC ); end; end; Код:
procedure GetSceen; var pt : TPoint; r : TRect; h : HWND; bit: TBitmap; begin bit:=TBitmap.Create; GetCursorPos(pt); h:=WindowFromPoint( pt ); GetWindowRect( h, r ); bit:=CaptureScreenRect( r ); bit.SaveToFile(ExtractFilePath(Application.ExeName)+'123.bmp'); with ScreenFRM do begin Image1.Picture.Bitmap:=bit; Вызов В: Если вызвать в OnShow То все прекрасно работает. Код:
procedure TScreenFRM.FormShow(Sender: TObject); var pt : TPoint; r : TRect; h : HWND; bit: TBitmap; begin bit:=TBitmap.Create; h:=WindowFromPoint( Mouse.CursorPos ); GetWindowRect( h, r ); Image1.Picture.Bitmap:= CaptureScreenRect( r ); Последний раз редактировалось nixon232, 27.05.2017 в 21:54. |