<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-200  評論-148  文章-15  trackbacks-0
    unit UnitCutPic;

    interface

    uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs;

    type
    TFrmCutPic = class(TForm)
    SaveDPic: TSaveDialog;
    procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
    Shift: TShiftState; X, Y: Integer);
    procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,
    Y: Integer);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    private
    procedure SnapScreen(a, b, c, d: Integer; Apath: string);
    { Private declarations }
    public
    { Public declarations }
    end;

    var
    FrmCutPic: TFrmCutPic;
    BeginX,BeginY,Endx,EndY:integer;//全局變量 記錄鼠標按下時的X,Y坐標
    IsPoint:Boolean;
    point:Tpoint;
    Arect:TRect;
    implementation

    {$R *.dfm}

    procedure TFrmCutPic.SnapScreen(a,b,c,d:Integer;Apath:string); //任意區域截圖,參數為截圖坐標
    var
    bmpscreen:Tbitmap;
    FullscreenCanvas:TCanvas;
    dc:HDC;
    sourceRect, destRect: TRect;
    begin
    dc:=getdc(0);
    fullscreencanvas:=Tcanvas.Create;
    fullscreencanvas.Handle:=dc;
    bmpscreen:=Tbitmap.create;
    bmpscreen.Width :=c-a;
    bmpscreen.Height :=d-b;
    sourcerect:=Rect(0,0,c-a ,d-b );
    destrect:= Rect(a,b,c,d);
    bmpscreen.Canvas.CopyRect(sourcerect,fullscreenCanvas,destrect);
    bmpscreen.SaveToFile(Apath);
    FullscreenCanvas.Free;
    bmpscreen.Free;
    ReleaseDC(0, DC);
    end;

    procedure TFrmCutPic.FormMouseDown(Sender: TObject; Button: TMouseButton;
    Shift: TShiftState; X, Y: Integer);
    begin
    if ssright in shift then Self.Close;
    if (IsPoint=True) and (ssleft in shift) and (ssDouble in Shift)then
    begin
    GetCursorPos(point);
    if PtInRect(Arect,point)=True then
    begin
    SnapScreen(Arect.Left,Arect.Top,Arect.Right,Arect.Bottom,ExtractFilePath(Application.ExeName)+'\Cut.bmp');
    if not SaveDPic.Execute then
    begin
    DeleteFile(ExtractFilePath(Application.ExeName)+'\Cut.bmp');
    Exit;
    end;
    CopyFile(PChar(ExtractFilePath(Application.ExeName)+'\Cut.bmp'),PChar(SaveDPic.FileName),False);
    DeleteFile(ExtractFilePath(Application.ExeName)+'\Cut.bmp');
    Self.Close;
    end;
    end;
    BeginX:=X; BeginY:=Y;//記錄鼠標按下時的X,Y坐標
    end;

    procedure TFrmCutPic.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
    Y: Integer);
    begin
    GetCursorPos(point);
    if (PtInRect(Arect,point)=True) then
    Cursor:=crSizeAll
    else
    Cursor:=crCross;


    // 下面代碼演示的是背景為純色時的選取框.
    //選取的范圍可記錄在一個TRECT變量里.具體情況視要求而定.
    //當背影為圖形時..可 以把注釋1之間的代碼替換為重繪背景的代碼
    if ssLeft in shift then//判斷鼠標左鍵是下按著.
    begin
    Canvas.Brush.Color:=#ffffff;
    Canvas.Brush.Style:=bsSolid;
    Canvas.FillRect(RECT(0,0,width,height));
    Canvas.Brush.Style:=bsClear;
    Canvas.Pen.Style:=psDot;
    Canvas.Pen.Width:=2;
    Canvas.Pen.Color:=clBlue;
    Canvas.Rectangle(BeginX,BeginY,X,Y);
    Arect.Left:=BeginX;
    Arect.Top:=BeginY;
    Arect.Right:=x;
    Arect.Bottom:=y;
    endx:=x;
    endy:=y;
    IsPoint:=True;
    end;
    end;

    procedure TFrmCutPic.FormKeyPress(Sender: TObject; var Key: Char);
    begin
    if key = #27 then application.terminate;
    end;

    end.
    posted on 2010-08-03 14:16 無聲 閱讀(2243) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 一区视频免费观看| 无码国产精品一区二区免费I6| 亚洲色精品88色婷婷七月丁香| 免费黄网站在线看| 亚洲一区二区三区写真| 亚洲精品国产va在线观看蜜芽| 18级成人毛片免费观看| 亚洲AV色无码乱码在线观看| 亚洲人成网77777亚洲色| 在线观看特色大片免费视频| 免费人成再在线观看网站| 四虎成人精品国产永久免费无码| 久久国产亚洲精品麻豆| 日韩av无码成人无码免费| 一级黄色片免费观看| 亚洲人成伊人成综合网久久| 亚洲人成无码www久久久| 2021国产精品成人免费视频| 香港一级毛片免费看| 亚洲欧洲自拍拍偷综合| 亚洲人成网站18禁止一区| 欧美男同gv免费网站观看| 青柠影视在线观看免费高清 | 国产h视频在线观看免费| 一级做a爰片久久毛片免费陪| 亚洲欧洲日本国产| 青青草原亚洲视频| 午夜影视在线免费观看| 国产精品亚洲综合网站| 亚洲黄色一级毛片| 在线观看的免费网站| 三级黄色片免费看| 亚洲精品人成网线在线播放va| 亚洲韩国—中文字幕| 亚洲毛片av日韩av无码| 色吊丝最新永久免费观看网站| 亚洲视频免费在线观看| 久久精品免费网站网| 亚洲美女人黄网成人女| 亚洲综合图色40p| 亚洲av高清在线观看一区二区 |