📄 clearnew.pas
字号:
{
模块名称:清除最新文件菜单
使用方法:1、Create
2、ShowModal
3、m_nMax:最新文件索引最大值
返回值: 1、mrOk:返回正确的索引值
2、mrCancel:取消清除
3、RadioBtnClearPart、RadioBtnClearAll:清除类型
4、EditFromIndex、EditToIndex:清除索引
}
unit ClearNew;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Spin, Buttons, ExtCtrls;
type
TFormClearNew = class(TForm)
GroupBox1: TGroupBox;
RadioBtnClearPart: TRadioButton;
RadioBtnClearAll: TRadioButton;
BtnOk: TButton;
BtnCancel: TButton;
Label1: TLabel;
Label2: TLabel;
EditFromIndex: TEdit;
EditToIndex: TEdit;
Panel3: TPanel;
BtnFromNext: TSpeedButton;
BtnFromPrev: TSpeedButton;
Panel4: TPanel;
BtnToNext: TSpeedButton;
BtnToPrev: TSpeedButton;
procedure FormShow(Sender: TObject);
procedure RadioBtnClearPartClick(Sender: TObject);
procedure BtnFromNextClick(Sender: TObject);
procedure BtnFromPrevClick(Sender: TObject);
procedure EditFromIndexKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
procedure EditFromIndexChange(Sender: TObject);
procedure BtnOkClick(Sender: TObject);
procedure EnabledInput;
procedure MouseIndex(Flag, Kind : string);
private
{ Private declarations }
public
{ Public declarations }
m_nMax : integer; //最新文件索引最大值
end;
var
FormClearNew: TFormClearNew;
implementation
{$R *.DFM}
procedure TFormClearNew.FormShow(Sender: TObject);
begin
//初始化序号选择按钮
EditFromIndex.Text := '1';
EditToIndex.Text := '1';
//调整输入框
EnabledInput;
EditFromIndex.SetFocus;
end;
procedure TFormClearNew.RadioBtnClearPartClick(Sender: TObject);
begin
EnabledInput;
end;
procedure TFormClearNew.BtnFromNextClick(Sender: TObject);
begin
MouseIndex('Next', (Sender as TSpeedButton).Hint); //下一索引
end;
procedure TFormClearNew.BtnFromPrevClick(Sender: TObject);
begin
MouseIndex('Prev', (Sender as TSpeedButton).Hint); //上一索引
end;
procedure TFormClearNew.EditFromIndexKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
case Key of
13 : BtnOk.Click;
38 : MouseIndex('Next', (Sender as TEdit).Hint); //下一索引
40 : MouseIndex('Prev', (Sender as TEdit).Hint); //上一索引
27 : BtnCancel.Click;
end;
end;
procedure TFormClearNew.EditFromIndexChange(Sender: TObject);
begin
EditToIndex.Text := EditFromIndex.Text;
end;
procedure TFormClearNew.BtnOkClick(Sender: TObject);
var i : integer;
begin
try //调整第一个输入框
i := StrToInt(EditFromIndex.Text);
if i < 1 then EditFromIndex.Text := '1';
if i > m_nMax then EditFromIndex.Text := IntToStr(m_nMax);
except
EditFromIndex.Text := '1';
Exit;
end;
try //调整第二个输入框
i := StrToInt(EditToIndex.Text);
if i < 1 then EditToIndex.Text := '1';
if i > m_nMax then EditToIndex.Text := IntToStr(m_nMax);
except
EditToIndex.Text := '1';
Exit;
end;
ModalResult := mrOk;
end;
procedure TFormClearNew.EnabledInput();
begin
Label1.Enabled := RadioBtnClearPart.Checked;
Label2.Enabled := RadioBtnClearPart.Checked;
EditFromIndex.Enabled := RadioBtnClearPart.Checked;
BtnFromNext.Enabled := RadioBtnClearPart.Checked;
BtnFromPrev.Enabled := RadioBtnClearPart.Checked;
EditToIndex.Enabled := RadioBtnClearPart.Checked;
BtnToNext.Enabled := RadioBtnClearPart.Checked;
BtnToPrev.Enabled := RadioBtnClearPart.Checked;
end;
procedure TFormClearNew.MouseIndex(Flag,Kind : String);
var i : integer;
begin
//获取当前显示的索引,错误则为0
try
if Kind='1' then
i := StrToInt(EditFromIndex.Text)
else
i := StrToInt(EditToIndex.Text);
except
i := 0;
end;
if Flag = 'Next' then
inc(i)
else
dec(i);
if i < 1 then i := 1;
if i > m_nMax then i := m_nMax;
if Kind = '1' then
EditFromIndex.Text := IntToStr(i)
else
EditToIndex.Text := IntToStr(i);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -