searchintfrm.pas

来自「MiniHex 1.1 源程序说明 “MiniHex11SrcSourc」· PAS 代码 · 共 115 行

PAS
115
字号
unit SearchIntFrm;

interface

uses
  Windows, Messages, SysUtils, Classes,
  Graphics, Controls, Forms, Dialogs,
  StdCtrls, Search;

type
  TSearchIntData = record
     Para: TSearchIntPara;
  end;

  TSearchIntForm = class(TForm)
    Label1: TLabel;
    GroupBox2: TGroupBox;
    OnlyBlockCheckBox: TCheckBox;
    AllDocCheckBox: TCheckBox;
    SearchButton: TButton;
    CancelButton: TButton;
    HelpButton: TButton;
    DefaultButton: TButton;
    ValueComboBox: TComboBox;
    procedure SearchButtonClick(Sender: TObject);
    procedure CancelButtonClick(Sender: TObject);
    procedure HelpButtonClick(Sender: TObject);
    procedure DefaultButtonClick(Sender: TObject);
    procedure FormActivate(Sender: TObject);
  private
    { Private declarations }
    function CheckValid: Boolean;

  public
    { Public declarations }
    procedure GetData(var Value: TSearchIntData);

  end;

var
  SearchIntForm: TSearchIntForm;

function ShowSearchIntForm(var Value: TSearchIntData): Boolean;

implementation

{$R *.DFM}

uses
  Radix;

function ShowSearchIntForm(var Value: TSearchIntData): Boolean;
begin
  Result := (SearchIntForm.ShowModal = mrOk);
  if Result then SearchIntForm.GetData(Value);
end;

procedure TSearchIntForm.GetData(var Value: TSearchIntData);
begin
  Value.Para.Value := StrToInt64Def(ValueComboBox.Text, 0);
  Value.Para.OnlyBlock := OnlyBlockCheckBox.Checked;
  Value.Para.AllDoc := AllDocCheckBox.Checked;
end;

function TSearchIntForm.CheckValid: Boolean;
begin
  Result := True;
  if ValueComboBox.Text = '' then
  begin
    Result := False;
    ValueComboBox.SetFocus;
    Exit;
  end;
  if not IsDecStr(ValueComboBox.Text) then
  begin
    Result := False;
    MessageBox(Handle, '整型值非法。', '提示', 48);
    ValueComboBox.SetFocus;
    Exit;
  end;
end;

procedure TSearchIntForm.SearchButtonClick(Sender: TObject);
begin
  if CheckValid then
  begin
    ValueComboBox.Items.Insert(0, ValueComboBox.Text);
    ModalResult := mrOk;
  end;
end;

procedure TSearchIntForm.CancelButtonClick(Sender: TObject);
begin
  ModalResult := mrCancel;
end;

procedure TSearchIntForm.HelpButtonClick(Sender: TObject);
begin
//
end;

procedure TSearchIntForm.DefaultButtonClick(Sender: TObject);
begin
  ValueComboBox.Text := '';
  OnlyBlockCheckBox.Checked := False;
  AllDocCheckBox.Checked := False;
end;

procedure TSearchIntForm.FormActivate(Sender: TObject);
begin
  ValueComboBox.SetFocus;
end;

end.

⌨️ 快捷键说明

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