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 + -
显示快捷键?