Интернет решения от доктора Боба | страница 7



1.1.5. TBUUCode компонент

Определение интерфейса компонента TUUCode, базируется на ранее приведенных и объясненных процедур Triplet2Kwartet и Kwartet2Triplet, заметим, что ниже приведенный код использует условное компилирование в зависимости от версий Delphi и C++Builder.

>unit UUCode;

interface

uses

{$IFDEF WIN32}

>   Windows,

{$ELSE}

>   WinTypes, WinProcs,

{$ENDIF}

>   SysUtils, Messages, Classes, Graphics, Controls, Forms;


{$IFNDEF WIN32}

type

>   ShortString = String;

{$ENDIF}


type

>   EUUCode = class(Exception);


>   TAlgorithm = (filecopy, uuencode, uudecode, xxencode, xxdecode, Base64encode, Base64decode);

>   TUnixCRLF = (CRLF, LF);


>   TProgressEvent = procedure(Percent:Word) of Object;


>   TBUUCode = class(TComponent)

>   public

>   { Public class declarations (override) }

>     constructor Create(AOwner: TComponent); override;


>   private

>   { Private field declarations }

>     FAbout: ShortString;

>     FActive: Boolean;

>     FAlgorithm: TAlgorithm;

>     FFileMode: Word;

>     FHeaders: Boolean;

>     FInputFileName: TFileName;

>     FOutputFileName: TFileName;

>     FOnProgress: TProgressEvent;

>     FUnixCRLF: TUnixCRLF;

>   { Dummy method to get read-only About property }

>     procedure Dummy(Ignore: ShortString);


>   protected

>   { Protected Activate method }

>     procedure Activate(GoActive: Boolean);


>   public

>   { Public UUCode interface declaration }

>     procedure UUCode;


>   published

>   { Published design declarations }

>     property About: ShortString read FAbout write Dummy;

>     property Active: Boolean read FActive write Activate;

>     property Algorithm: TAlgorithm read Falgorithm write FAlgorithm;

>     property FileMode: Word read FFileMode write FFileMode;

>     property Headers: Boolean read FHeaders write FHeaders;

>     property InputFile: TFileName read FInputFileName write FInputFileName;

>     property OutputFile: TFileName read FOutputFileName write FOutputFileName;

>     property UnixCRLF: TUnixCRLF read FUnixCRLF write FUnixCRLF;


>   published

>   { Published Event property }

>     property OnProgress: TProgressEvent read FOnProgress write FOnProgress;

>   end {TUUCode};


1.1.6. Свойства

TUUCode компонент имеет восемь опубликованных свойств (мы здесь опустим описание обработчиков событий):

Свойство About содержит информацию о правах и версии.

Свойство Active может использоваться для вызова преобразования UUCode во время разработки (design time), подобно свойству Active у TTables и Tquery компонент.

Свойство