📄 ye.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 + -