fdns.pas

来自「著名的SecureBlackBox控件完整源码」· PAS 代码 · 共 105 行

PAS
105
字号
unit fDNS;

interface

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

type
  TfrmDNS = class(TForm)
    lblNotes: TLabel;
    grpSenderRecord: TGroupBox;
    lblSenderDomainName: TLabel;
    lblSenderDomainKey: TLabel;
    edtSenderDomainName: TEdit;
    edtSenderDomainKey: TEdit;
    grpAuthorRecord: TGroupBox;
    lblAuthorDomainName: TLabel;
    lblAuthorDomainKey: TLabel;
    edtAuthorDomainName: TEdit;
    edtAuthorDomainKey: TEdit;
    btnOK: TButton;
    btnCancel: TButton;
    procedure btnOKClick(Sender: TObject);
  private
    { Private declarations }
  public
    function Execute(const SenderDomain, AuthorDomain: string;
      out SenderRecord, AuthorRecord: string): Boolean;
  end;

var
  frmDNS: TfrmDNS;

implementation

{$R *.dfm}

{ TfrmDNS }

function TfrmDNS.Execute(const SenderDomain, AuthorDomain: string;
  out SenderRecord, AuthorRecord: string): Boolean;
begin
  if SenderDomain = '' then
  begin
    // no DNS record is needed for sender
    grpSenderRecord.Enabled := False;
    lblSenderDomainName.Enabled := False;
    edtSenderDomainName.Enabled := False;
    lblSenderDomainKey.Enabled := False;
    edtSenderDomainKey.Enabled := False;
    edtSenderDomainKey.ParentColor := True;
  end
  else
  begin
    // DNS record for sender is required
    edtSenderDomainName.Text := SenderDomain;
  end;

  if AuthorDomain = '' then
  begin
    // no DNS record is needed for Author
    grpAuthorRecord.Enabled := False;
    lblAuthorDomainName.Enabled := False;
    edtAuthorDomainName.Enabled := False;
    lblAuthorDomainKey.Enabled := False;
    edtAuthorDomainKey.Enabled := False;
  end
  else
  begin
    // DNS record for Author is required
    edtAuthorDomainName.Text := AuthorDomain;
  end;

  Result := (ShowModal = mrOk); // show the dialog

  if Result then
  begin
    // get DNS records from the corresponding edit fields
    SenderRecord := edtSenderDomainKey.Text;
    AuthorRecord := edtAuthorDomainKey.Text;
  end;
end;

procedure TfrmDNS.btnOKClick(Sender: TObject);
begin
  // validate if the required records are present
  if edtSenderDomainKey.Enabled and (edtSenderDomainKey.Text = '') then
  begin
    MessageDlg('DNS Record for Sender is required', mtError, [mbOK], 0);
    edtSenderDomainKey.SetFocus;
    Exit;
  end;
  if edtAuthorDomainKey.Enabled and (edtAuthorDomainKey.Text = '') then
  begin
    MessageDlg('DNS Record for Author is required', mtError, [mbOK], 0);
    edtAuthorDomainKey.SetFocus;
    Exit;
  end;
  // we have all the required records
  ModalResult := mrOk;
end;

end.

⌨️ 快捷键说明

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