elmimeviewer_optionsparser.pas

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

PAS
164
字号
// File Version: 2004-04-16
unit ElMimeViewer_OptionsParser;

interface

uses
  // System units:
  SysUtils, Classes,
  {$IFDEF DELPHI_NET}
  System.ComponentModel,
  {$ENDIF}
  // Pl Unicode Library
  SBChSConv,
  // ElMime units:
  SBMIMETypes,
  SBMIMEUtils,
  SBMIMEClasses,
  SBMIMEStream,
  SBMIME,
  // ElMime Demo units:
  ElMimeViewer_DataCommon,
  // other units:
  Windows, Messages, {$IFDEF D_6_UP}Variants,{$ENDIF} Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;

type

  TFrame = TElMimePlugFrame;

  TfraOptionsParser = class(TFrame)
    gbParser: TGroupBox;
    gbView: TGroupBox;
    cbFieldsInTree: TCheckBox;
    cbHeaderInTree: TCheckBox;
    cbBodyInTree: TCheckBox;
    lbDefaultHeaderCharset: TLabel;
    lbDefaultBodyCharset: TLabel;
    cbActivatePartHandlers: TCheckBox;
    cbUseBackgroundParser: TCheckBox;
    edDefaultBodyCharset: TComboBox;
    edDefaultHeaderCharset: TComboBox;
    procedure cbFieldsInTreeClick(Sender: TObject);
    procedure cbHeaderInTreeClick(Sender: TObject);
    procedure cbBodyInTreeClick(Sender: TObject);
    procedure cbActivatePartHandlersClick(Sender: TObject);
    procedure edDefaultBodyCharsetChange(Sender: TObject);
    procedure edDefaultHeaderCharsetChange(Sender: TObject);
    procedure cbUseBackgroundParserClick(Sender: TObject);
  private
    { Private declarations }
    fInitState: Boolean;
    SL: TStringList;
  public
    { Public declarations }
    constructor Create(AOwner: TComponent); override;
    function GetCaption: string; override;
  protected
    procedure Init(mp: TElMessagePart; TagInfo: TTagInfo; Node: TTreeNodeInfo; bShow: Boolean); override;
  end;

implementation

uses ElMimeViewer_MainForm;

{$R *.dfm}

{ TfraOptionsParser }

procedure EnumCharsetsProc(const Category, Description, Name, Aliases: String; UserData: TUserData; var Stop: Boolean);
var
  f: TfraOptionsParser;
begin
  f := TfraOptionsParser(UserData);
  f.SL.Add(Name);
end;

constructor TfraOptionsParser.Create(AOwner: TComponent);
begin
  inherited;
  SL := TStringList.Create;
  try
    SL.BeginUpdate;
    Sl.Add('');
    EnumCharsets(EnumCharsetsProc, Self);
    SL.EndUpdate;
    edDefaultBodyCharset.Items.Assign(SL);
    edDefaultHeaderCharset.Items.Assign(SL);
  finally
    Sl.Free;
  end;

end;

procedure TfraOptionsParser.Init(mp: TElMessagePart; TagInfo: TTagInfo; Node: TTreeNodeInfo; bShow: Boolean);
begin
  inherited;
  if (Node = nil) or (dmElMime=nil) then
    exit;
  fInitState := True;
    with dmElMime do
    begin
      edDefaultHeaderCharset.Text := fDefaultHeaderCharset;
      edDefaultBodyCharset.Text := fDefaultBodyCharset;
      cbActivatePartHandlers.Checked := fDefaultActivatePartHandlers;
      cbUseBackgroundParser.Checked := fUseBackgroundParser;
    end;
    with frmMain do
    begin
      cbFieldsInTree.Checked := fOpFieldsInTree;
      cbHeaderInTree.Checked := fOpHeaderInTree;
      cbBodyInTree.Checked := fOpBodyInTree;
    end;
  fInitState := False;
end;

procedure TfraOptionsParser.cbFieldsInTreeClick(Sender: TObject);
begin
  if not fInitState then
    frmMain.fOpFieldsInTree := cbFieldsInTree.Checked;
end;

procedure TfraOptionsParser.cbHeaderInTreeClick(Sender: TObject);
begin
  if not fInitState then
    frmMain.fOpHeaderInTree := cbHeaderInTree.Checked;
end;

procedure TfraOptionsParser.cbBodyInTreeClick(Sender: TObject);
begin
  if not fInitState then
    frmMain.fOpBodyInTree := cbBodyInTree.Checked;
end;

procedure TfraOptionsParser.cbActivatePartHandlersClick(Sender: TObject);
begin
  if not fInitState then
    dmElMime.fDefaultActivatePartHandlers := cbActivatePartHandlers.Checked;
end;

procedure TfraOptionsParser.edDefaultBodyCharsetChange(Sender: TObject);
begin
  if not fInitState then
    dmElMime.fDefaultBodyCharset := edDefaultBodyCharset.Text;
end;

procedure TfraOptionsParser.edDefaultHeaderCharsetChange(Sender: TObject);
begin
  if not fInitState then
    dmElMime.fDefaultHeaderCharset := edDefaultHeaderCharset.Text;
end;

procedure TfraOptionsParser.cbUseBackgroundParserClick(Sender: TObject);
begin
  if not fInitState then
    dmElMime.fUseBackgroundParser := cbUseBackgroundParser.Checked;
end;

function TfraOptionsParser.GetCaption: string;
begin
  Result := 'MIME Options';
end;

end.

⌨️ 快捷键说明

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