📄 inputye.pas
字号:
{
模块名称:指定页码
使用方法:1、Create
2、ShowModal
返回值: 1、mrOk:返回正确的索引值
2、mrCancel:取消指定页码
3、m_nPos:指定页码
}
unit InputYe;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls, ComCtrls, Buttons;
type
TFormInputYe = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
Label1: TLabel;
Label2: TLabel;
EditInputYe: TEdit;
BtnNextYe: TSpeedButton;
BtnPrevYe: TSpeedButton;
procedure FormShow(Sender: TObject);
procedure EditInputYeKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
procedure BtnNextYeClick(Sender: TObject);
procedure BtnPrevYeClick(Sender: TObject);
procedure MouseYeMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
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 MouseYe(Flag : String);
procedure DoneText;
private
{ Private declarations }
FnStartX, FnStartY : integer; //起始位置
FboolLeftDown : Boolean; //左键标志
public
{ Public declarations }
m_nPos : integer;
end;
var
FormInputYe: TFormInputYe;
implementation
uses Global;
{$R *.DFM}
procedure TFormInputYe.FormShow(Sender: TObject);
begin
GetCurrentMousePoint();
Self.Left := g_MousePoint.x - (Panel2.Left + Trunc(Panel2.Width / 2));
Self.Top := g_MousePoint.y - (Panel2.Top + Trunc(Panel2.Height / 4));
Self.Width := Panel1.Width;
Self.Height := Panel1.Height;
with EditInputYe do
begin
Text := IntToStr(g_nYeCurrent);
SetFocus;
SelectAll;
end;
end;
procedure TFormInputYe.EditInputYeKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
case Key of
13 : DoneText; //处理
38 : MouseYe('Next'); //下一页
40 : MouseYe('Prev'); //上一页
27 : ModalResult := mrCancel; //忽略改变
end;
end;
procedure TFormInputYe.BtnNextYeClick(Sender: TObject);
begin
MouseYe('Next');
end;
procedure TFormInputYe.BtnPrevYeClick(Sender: TObject);
begin
MouseYe('Prev');
end;
procedure TFormInputYe.MouseYeMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
FboolLeftDown := False; //释放左键
if Button = mbRight then
DoneText;
end;
procedure TFormInputYe.Panel1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if Button = mbLeft then
begin
FnStartX := x;
FnStartY := y;
FboolLeftDown := True; //按下左键
end;
end;
procedure TFormInputYe.Panel1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
if FboolLeftDown then
begin //进入移动状态
Self.Left := Self.Left + (X - FnStartX);
Self.Top := Self.Top + (Y - FnStartY);
end;
end;
procedure TFormInputYe.Panel1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if Button = mbRight then
ModalResult := mrCancel //忽略改变
else
FboolLeftDown := False; //释放左键
end;
procedure TFormInputYe.MouseYe(Flag : String);
var i : integer;
begin
try
i := StrToInt(EditInputYe.Text);
except
i := 0;
end;
if Flag='Next' then
inc(i)
else
dec(i);
if i < 1 then i := 1;
if i > g_nYeCount then i := g_nYeCount;
EditInputYe.Text := IntToStr(i);
end;
procedure TFormInputYe.DoneText();
begin
try
m_nPos := StrToInt(EditInputYe.Text);
ModalResult := mrOk;
except
ModalResult := mrCancel;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -