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

📄 clearnew.pas

📁 电子小说阅读器v2.68可用于阅读pdf.html等各种形式的文档
💻 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 + -