convcryptfrm.pas

来自「=== === === MiniHex 1.61 源程序说明 =」· PAS 代码 · 共 88 行

PAS
88
字号
unit ConvCryptFrm;

interface

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

type
  TConvCryptData = record
    CryptType: TCryptType;
    OnlyBlock: Boolean;
    Key: string;
    Encrypt: Boolean;
  end;

  TConvCryptForm = class(TForm)
    TabControl: TTabControl;
    OkButton: TButton;
    CancelButton: TButton;
    KindListBox: TListBox;
    OnlyBlockCheckBox: TCheckBox;
    Label1: TLabel;
    Label2: TLabel;
    KeyEdit: TEdit;
    procedure OkButtonClick(Sender: TObject);
    procedure CancelButtonClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    procedure GetData(var Value: TConvCryptData);
  end;

var
  ConvCryptForm: TConvCryptForm;

function ShowConvCryptForm(var Value: TConvCryptData): Boolean;

implementation

uses Misc;

{$R *.DFM}

function ShowConvCryptForm(var Value: TConvCryptData): Boolean;
var
  Frm: TConvCryptForm;
begin
  Frm := TConvCryptForm.Create(Application);
  Result := (Frm.ShowModal = mrOk);
  if Result  then Frm.GetData(Value);
  Frm.Free;
end;

procedure TConvCryptForm.GetData(var Value: TConvCryptData);
begin
  Value.CryptType := TCryptType(KindListBox.ItemIndex);
  Value.OnlyBlock := OnlyBlockCheckBox.Checked;
  Value.Key := KeyEdit.Text;
  Value.Encrypt := (TabControl.TabIndex = 0);
end;

procedure TConvCryptForm.FormCreate(Sender: TObject);
begin
  KindListBox.Items.Add('GOST (256 bit)');
  KindListBox.ItemIndex := 1;
  KindListBox.ItemIndex := 0;
end;

procedure TConvCryptForm.OkButtonClick(Sender: TObject);
begin
  if KindListBox.ItemIndex > 0 then
  begin
    MsgBox('此加密算法暂不支持。');
    Exit;
  end;
  ModalResult := mrOk;
end;

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

end.

⌨️ 快捷键说明

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