<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)  編輯  收藏

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


    網站導航:
     
    主站蜘蛛池模板: 在线观看亚洲精品国产| 亚洲AV永久无码精品水牛影视| 成人片黄网站色大片免费观看cn | 国产精品亚洲lv粉色| 色播亚洲视频在线观看| 亚洲人成网站色在线入口| 免费看男女下面日出水来| 国产精品网站在线观看免费传媒| 美女裸免费观看网站| 亚洲人av高清无码| 一本色道久久88亚洲精品综合| 亚洲精品乱码久久久久66| 亚洲熟伦熟女新五十路熟妇| 亚洲AV无码专区日韩| 国产又大又粗又硬又长免费 | 中文字幕无码视频手机免费看| 卡1卡2卡3卡4卡5免费视频| 永久看日本大片免费35分钟| 2021在线观看视频精品免费| 久久久久久影院久久久久免费精品国产小说| 麻豆va在线精品免费播放| 无码免费又爽又高潮喷水的视频| 美女被羞羞网站免费下载| 国产精品亚洲专区无码不卡| 黄色a三级免费看| a级成人毛片免费图片| 国产精彩免费视频| 日韩伦理片电影在线免费观看| 天堂亚洲免费视频| 亚洲制服中文字幕第一区| 亚洲色无码专区一区| 五月天婷婷免费视频| 一区二区三区观看免费中文视频在线播放| 国产自国产自愉自愉免费24区| 歪歪漫画在线观看官网免费阅读 | 99免费在线观看视频| 日日操夜夜操免费视频| 亚洲国产精品VA在线看黑人| 亚洲人成日本在线观看| 热久久这里是精品6免费观看| 国产乱码免费卡1卡二卡3卡|