⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 showimgu.pas

📁 很不错的delphi 画失量图的delphi源代码
💻 PAS
字号:
unit ShowImgU;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ExtCtrls, StdCtrls, Buttons;

type
  TShowImgF = class(TForm)
    Panel3: TPanel;
    Image1: TImage;
    Label1: TLabel;
    procedure Label1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Label1MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure Label1MouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Label1DblClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    moving:Boolean;
    image_left:integer;
    image_top:integer;
    origin:Tpoint;
    visa1:Tpoint;//鼠标当前位置相对图象右下角的坐标
    visa2:Tpoint;//鼠标当前位置相对图象左上角的坐标
    { Private declarations }
  public
    { Public declarations }
  end;

var
  ShowImgF: TShowImgF;

implementation



{$R *.DFM}

procedure TShowImgF.Label1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var
  ph,pw,ih,iw:Integer;
begin
  if (Button=mbleft) and (not(Label1.Cursor=crDefault)) then begin
    Moving:=True;
    origin.x:=X;
    origin.y:=Y;
    image_left:=Image1.Left;
    image_top:=Image1.Top;
    ih:=Panel3.Height;
    iw:=Panel3.Width;
    ph:=Image1.Picture.Height;
    pw:=Image1.Picture.Width;
    if (ph>ih) and (pw>iw) then begin
      visa1.x:=X-(Image1.Width-Panel3.Width+Image1.Left);
      visa1.y:=Y-(Image1.Height-Panel3.Height+Image1.Top);
    end else if (ph>ih) then begin
      visa1.x:=X-(((Image1.Width-Panel3.Width) Div 2)+Image1.Left);
      visa1.y:=Y-(Image1.Height-Panel3.Height+Image1.Top);
    end else if (pw>iw) then begin
      visa1.x:=X-(Image1.Width-Panel3.Width+Image1.Left);
      visa1.y:=Y-(((Image1.Height-Panel3.Height) Div 2)+Image1.Top);
    end;
    visa2.x:=X-Image1.left;
    visa2.y:=Y-Image1.top;
  end else if Button=mbRight then Close;
end;

procedure TShowImgF.Label1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  if moving then begin
    if X>visa2.x then X:=visa2.x;
    if Y>visa2.y then Y:=visa2.y;
    if X<visa1.x then X:=visa1.x;
    if Y<visa1.y then Y:=visa1.y;
    image1.left:=image_left+(X-origin.x);
    image1.top:=image_top+(Y-origin.y);
  end;
end;

procedure TShowImgF.Label1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin                       
  if Button=mbLeft then begin
    Moving:=False;
  end;
end;

procedure TShowImgF.Label1DblClick(Sender: TObject);
begin
  Close;
end;

procedure TShowImgF.FormCreate(Sender: TObject);
begin
  Width:=Screen.Width;
  Height:=Screen.Height;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -