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

📄 ye.pas

📁 编写
💻 PAS
字号:
unit ye;

interface

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

type
  Tf_ye = class(TForm)
    Panel1: TPanel;
    ye_check: TCheckBox;
    Label1: TLabel;
    Label2: TLabel;
    max_ye: TLabel;
    input_ye: TEdit;
    Panel2: TPanel;
    Mouse_ye_Next: TSpeedButton;
    Mouse_ye_Prev: TSpeedButton;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormShow(Sender: TObject);
    procedure Panel1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    procedure Panel1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
    procedure Panel1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    procedure do_text;
    procedure mouse_ye(Flag : String);
    procedure input_yeKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
    procedure mouse_yeMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    procedure Mouse_ye_NextClick(Sender: TObject);
    procedure Mouse_ye_PrevClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  f_ye: Tf_ye;
  ye_Number : integer;
  xStart,yStart : integer;  //起始位置
  x,y : integer;            //当前位置
  xMove,yMove : integer;    //相对移动距离
  mdf : Boolean;            //左键标志

implementation

uses main;

{$R *.DFM}

procedure Tf_ye.input_yeKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  case Key of
    13: do_text;           //处理
    38: mouse_ye('Next');  //下一页
    40: mouse_ye('Prev');  //上一页
    27: begin              //忽略改变
             Input_ye.Text:='';
             ye_check.Checked:=False;
             f_ye.Close;
        end;
  end;
end;

procedure Tf_ye.Mouse_ye_NextClick(Sender: TObject);
begin
  Mouse_ye('Next');
end;

procedure Tf_ye.Mouse_ye_PrevClick(Sender: TObject);
begin
  Mouse_ye('Prev');
end;

procedure Tf_ye.mouse_ye(Flag : String);
begin
  //获取当前显示的页码,错误则为0
  try
     ye_Number:=StrToInt(Input_ye.Text);
  except
     ye_Number:=0;
  end;

  if Flag='Next' then
     inc(ye_Number)
  else
     dec(ye_Number);

  if ye_Number<1 then ye_Number:=1;
  if ye_Number>StrToInt(max_ye.Caption) then ye_Number:=StrToInt(max_ye.Caption);

  Input_ye.Text:=IntToStr(ye_Number);
end;

procedure Tf_ye.do_text();
begin
  try
     ye_Number:=StrToInt(Input_ye.Text);
     ye_check.Checked:=True;
  except
     Input_ye.Text:='';
  end;
  
  f_ye.Close;
end;

procedure Tf_ye.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  if ye_check.Checked then
     ModalResult:=mrOk
  else
     ModalResult:=mrCancel;
end;

procedure Tf_ye.FormShow(Sender: TObject);
begin
  f_ye.Width:=Panel1.Width;
  f_ye.Height:=Panel1.Height;

  input_ye.SetFocus;
  input_ye.SelectAll;
  ye_check.Checked:=False;
end;

procedure Tf_ye.Panel1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  if Button=mbLeft then
  begin
       xStart:=x; yStart:=y;
       xMove:=0; yMove:=0;
       mdf:=True;   //按下左键
  end;
end;

procedure Tf_ye.Panel1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
  if mdf then
  begin  //进入移动状态
       xMove:=x-xStart;
       yMove:=y-yStart;

       f_ye.left:=f_ye.left+xMove;
       f_ye.top:=f_ye.top+yMove;
  end;
end;

procedure Tf_ye.Panel1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  if Button=mbRight then
  begin  //忽略改变
       ye_check.Checked:=False;
       f_ye.Close;
  end
  else
     mdf:=False;  //释放左键
end;

procedure Tf_ye.mouse_yeMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  mdf:=False;  //释放左键
  if Button=mbRight then
     do_text;  //退出输入页数
end;

end.

⌨️ 快捷键说明

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