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

📄 searchfloatfrm.pas

📁 === === === MiniHex 1.61 源程序说明 ============================== “$(MiniHex)Source”目录中的所有
💻 PAS
字号:
unit SearchFloatFrm;

interface

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

type
  TSearchFloatData = record
    Value: Extended;
    AllDoc: Boolean;
    Opt: TSearchFloatOptions;
  end;

  TSearchFloatForm = class(TForm)
    Label1: TLabel;
    ValueComboBox: TComboBox;
    GroupBox2: TGroupBox;
    OnlyBlockCheckBox: TCheckBox;
    AllDocCheckBox: TCheckBox;
    SearchButton: TButton;
    CancelButton: TButton;
    HelpButton: TButton;
    DefaultButton: TButton;
    TypeRadioGroup: TRadioGroup;
    GroupBox1: TGroupBox;
    BlurEdit: TEdit;
    Label2: TLabel;
    BlurCheckBox: TCheckBox;
    procedure SearchButtonClick(Sender: TObject);
    procedure CancelButtonClick(Sender: TObject);
    procedure HelpButtonClick(Sender: TObject);
    procedure DefaultButtonClick(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure BlurCheckBoxClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
    function CheckValid: Boolean;
  public
    { Public declarations }
    procedure GetData(var Value: TSearchFloatData);

  end;

var
  SearchFloatForm: TSearchFloatForm;

function ShowSearchFloatForm(var Value: TSearchFloatData): Boolean;

implementation

{$R *.DFM}

uses
  Misc;

function ShowSearchFloatForm(var Value: TSearchFloatData): Boolean;
begin
  Result := (SearchFloatForm.ShowModal = mrOk);
  if Result then SearchFloatForm.GetData(Value);
end;

procedure TSearchFloatForm.GetData(var Value: TSearchFloatData);
begin
  Value.Value := StrToFloat(ValueComboBox.Text);
  Value.AllDoc := AllDocCheckBox.Checked;
  Value.Opt.FloatType := TFloatType(TypeRadioGroup.ItemIndex);
  Value.Opt.Blur := BlurCheckBox.Checked;
  Value.Opt.BlurValue := StrToFloat(BlurEdit.Text);
  Value.Opt.OnlyBlock := OnlyBlockCheckBox.Checked;
end;

function TSearchFloatForm.CheckValid: Boolean;
begin
  Result := True;
  if ValueComboBox.Text = '' then
  begin
    Result := False;
    ValueComboBox.SetFocus;
    Exit;
  end;
  if not IsFloat(ValueComboBox.Text) then
  begin
    Result := False;
    MsgBox('浮点数不正确。');
    ValueComboBox.SetFocus;
    Exit;
  end;
  if not IsFloat(BlurEdit.Text) then
  begin
    Result := False;
    MsgBox('浮点数不正确。');
    BlurEdit.SetFocus;
    Exit;
  end;
end;

procedure TSearchFloatForm.FormCreate(Sender: TObject);
begin
  BlurCheckBoxClick(nil);
end;

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

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

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

procedure TSearchFloatForm.DefaultButtonClick(Sender: TObject);
begin
  ValueComboBox.Text := '';
  TypeRadioGroup.ItemIndex := 0;
  BlurCheckBox.Checked := False;
  BlurEdit.Text := '0.001';
  OnlyBlockCheckBox.Checked := False;
  AllDocCheckBox.Checked := False;
end;

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

procedure TSearchFloatForm.BlurCheckBoxClick(Sender: TObject);
begin
  if BlurCheckBox.Checked then
  begin
    BlurEdit.Enabled := True;
    BlurEdit.Color := clWindow;
  end else
  begin
    BlurEdit.Enabled := False;
    BlurEdit.Color := clBtnFace;
  end;
end;

end.

⌨️ 快捷键说明

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