⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 nmuue.pas

📁 DELPHI里面一些常用的控件
💻 PAS
字号:
unit NMUUE;

interface

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

type
  UUMethods = (uuMime, uuCode);

  TNMUUProcessor = class(TComponent)
  private
    FOnBeginEncode: TNotifyEvent;
    FOnEndEncode: TNotifyEvent;
    FOnBeginDecode: TNotifyEvent;
    FOnEndDecode: TNotifyEvent;
    FInputStream: TStream;
    FOutputStream: TStream;
  protected
    FUUMethod: UUMethods;
  public
    constructor Create(AOwner: TComponent); override;
    procedure Encode;
    procedure Decode;
    property InputStream: TStream read FInputStream write FInputStream;
    property OutputStream: TStream read FOutputStream write FOutputStream;
  published
    property Method: UUMethods read FUUMethod write FUUMethod default uuMime;
    property OnBeginEncode: TNotifyEvent read FOnBeginEncode write FOnBeginEncode;
    property OnEndEncode: TNotifyEvent read FOnEndEncode write FOnEndEncode;
    property OnBeginDecode: TNotifyEvent read FOnBeginDecode write FOnBeginDecode;
    property OnEndDecode: TNotifyEvent read FOnEndDecode write FOnEndDecode;
  end;

implementation
uses
  NM64Encode, NM64Decode, NMUUEncode, NMUUDecode;

{*******************************************************************************
Create NMUUE and set code method to MIME by default
*******************************************************************************}

constructor TNMUUProcessor.Create(AOwner: TComponent);
begin
  inherited;
  FUUMethod := uuMime;
end;

{*******************************************************************************
Encode
*******************************************************************************}

procedure TNMUUProcessor.Encode;
begin
  FInputStream.Position := 0;
  if Assigned(FOnBeginEncode) then
    FOnBeginEncode(self);

  case Method of
    uuMime: B64Encode(FInputStream, FOutputStream);
    uuCode: UUEEncode(FInputStream, FOutputStream);
  end;
  FInputStream.Position := 0;
  FOutputStream.Position := 0;
  if Assigned(FOnEndEncode) then
    FOnEndEncode(self);


end;

{*******************************************************************************************
Decode
********************************************************************************************}

procedure TNMUUProcessor.Decode;
begin
  FInputStream.Position := 0;
  if Assigned(FOnBeginDecode) then
    FOnBeginDecode(self);

  case Method of
    uuMime: B64Decode(FInputStream, FOutputStream);
    uuCode: UUEDecode(FInputStream, FOutputStream);
  end;
  FInputStream.Position := 0;
  FOutputStream.Position := 0;
  if Assigned(FOnEndDecode) then
    FOnEndDecode(self);
end;

end.

⌨️ 快捷键说明

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