convchrsetfrm.pas

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

PAS
85
字号
unit ConvChrsetFrm;

interface

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

type

  TConvChrsetData = record
    FromType: TCharsetType;
    ToType: TCharsetType;
    OnlyBlock: Boolean;
  end;

  TConvChrsetForm = class(TForm)
    FromListBox: TListBox;
    ToListBox: TListBox;
    Label1: TLabel;
    Label2: TLabel;
    OnlyBlockCheckBox: TCheckBox;
    OkButton: TButton;
    CancelButton: TButton;
    procedure OkButtonClick(Sender: TObject);
    procedure CancelButtonClick(Sender: TObject);
    procedure FromListBoxClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    procedure GetData(var Value: TConvChrsetData);
  end;

var
  ConvChrsetForm: TConvChrsetForm;

function ShowConvChrsetForm(var Value: TConvChrsetData): Boolean;

implementation

{$R *.DFM}

function ShowConvChrsetForm(var Value: TConvChrsetData): Boolean;
var
  Frm: TConvChrsetForm;
begin
  Frm := TConvChrsetForm.Create(Application);
  Result := (Frm.ShowModal = mrOk);
  if Result  then Frm.GetData(Value);
  Frm.Free;
end;

procedure TConvChrsetForm.GetData(var Value: TConvChrsetData);
begin
  Value.FromType := TCharsetType(FromListBox.ItemIndex);
  Value.ToType := TCharsetType(ToListBox.ItemIndex);
  Value.OnlyBlock := OnlyBlockCheckBox.Checked;
end;

procedure TConvChrsetForm.FormCreate(Sender: TObject);
begin
  FromListBoxClick(nil);
end;

procedure TConvChrsetForm.OkButtonClick(Sender: TObject);
begin
  ModalResult := mrOk;
end;

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

procedure TConvChrsetForm.FromListBoxClick(Sender: TObject);
begin
  OkButton.Enabled := (FromListBox.ItemIndex <> ToListBox.ItemIndex);
  if (FromListBox.ItemIndex = -1) or (ToListBox.ItemIndex = -1) then
    OkButton.Enabled := False;
end;

end.

⌨️ 快捷键说明

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