www.pudn.com > yrsCapture.zip > capture2.pas
{******************************************************************************}
{* *}
{* Adirondack Software & Graphics Capture Form Unit *}
{* (C) Copyright Adirondack Software & Graphics 1996-1998 *}
{* *}
{******************************************************************************}
unit capture2;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;
type
TForm2 = class( TForm )
procedure FormCreate( Sender: TObject );
procedure FormMouseDown( Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer );
procedure FormMouseMove( Sender: TObject; Shift: TShiftState; X,
Y: Integer );
procedure FormMouseUp( Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer );
procedure FormPaint( Sender: TObject );
procedure FormDestroy( Sender: TObject );
private
{ Private declarations }
fDragging: Boolean;
procedure WMEraseBkGnd( Var Msg: TWMEraseBkGnd ); message WM_ERASEBKGND;
public
{ Public declarations }
fRect: TRect;
fBmp: TBitmap;
end;
var
Form2: TForm2;
implementation
Uses Main;
{$R *.DFM}
{==============================================================================}
procedure TForm2.FormCreate( Sender: TObject );
{==============================================================================}
var
aDC: HDC;
begin
fBMP := TBitmap.Create;
fBMP.Width := Screen.Width;
fBMP.Height := Screen.Height;
aDC := GetDC( 0 );
BitBlt( fBMP.Canvas.handle, 0, 0, Screen.Width, Screen.Height,
aDC, 0, 0, srcCopy );
ReleaseDC( 0, aDC );
SetBounds( 0, 0, Screen.Width, Screen.Height );
end;
{==============================================================================}
procedure TForm2.FormMouseDown( Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer );
{==============================================================================}
begin
if mbLeft = Button then begin
fDragging := True;
SetRect( fRect, X, Y, X, Y );
Canvas.DrawFocusrect( fRect );
end;
end;
{==============================================================================}
procedure TForm2.FormMouseMove( Sender: TObject; Shift: TShiftState; X,
Y: Integer );
{==============================================================================}
begin
if fDragging then begin
Canvas.DrawFocusrect( fRect );
fRect.Right := X;
fRect.Bottom := Y;
Canvas.DrawFocusrect( fRect );
end;
end;
{==============================================================================}
procedure TForm2.FormMouseUp( Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer );
{==============================================================================}
begin
if fDragging then begin
Canvas.DrawFocusrect( fRect );
fDragging := False;
end;
ModalResult := mrOK;
end;
{==============================================================================}
procedure TForm2.FormPaint( Sender: TObject );
{==============================================================================}
begin
Canvas.Draw( 0, 0, fBMP );
end;
{==============================================================================}
procedure TForm2.FormDestroy( Sender: TObject );
{==============================================================================}
begin
fBMP.Free;
end;
{==============================================================================}
Procedure TForm2.WMEraseBkGnd( var Msg: TWMEraseBkGnd );
{==============================================================================}
begin
Msg.Result := 1;
end;
end.