Шаг 57.
Пример использования компонента TNMUUProcessor

    На этом шаге мы рассмотрим пример использования компонента TNMUUProcessor.

    Создаем новое приложение Delphi и помещаем на форму два поля редактирования для указания в них имен входных и выходных файлов, две командных кнопки, два групповых окна, в которые добавляем по две радиокнопки и компоненты ТOpenDialog и TNMUUProcessor. При нажатии на кнопку с надписью Выбрать, будет загружаться диалоговое окно выбора входного файла для кодирования или декодирования. Кнопка Выполнить будет выполнять нужную операцию над файлом, ту, которая выбрана в соответствующей радиокнопке.


Рис.1. Внешний вид приложения

    Другая группа радиокнопок задает один из двух возможных алгоритмов кодирования. Обработчик события OnClick кнопки Выполнить приводится ниже. В этом обработчике создаются два потока - входной и выходной, затем в соответствии с выбором радиокнопок задается алгоритм кодирования и вызывается либо метод кодирования, либо декодирования. После этого потоки освобождаются.

procedure TForm1.Button2Click(Sender: TObject);
//Кнопка "Выполнить"
var
  InStream,
  OutStream: TFileStream;
begin
  InStream := TFileStream.Create(Edit1.Text, fmOpenRead);
  OutStream := TFileStream.Create(Edit2.Text, fmCreate);
  try
   If RadioGroup2.ItemIndex=1 then
       NMUUProcessor1.Method := uuMIME
   else
       NMUUProcessor1.Method := uuCode;
   NMUUProcessor1.InputStream := InStream;
   NMUUProcessor1.OutputStream := OutStream;
   If RadioGroup1.ItemIndex=0 then
       NMUUProcessor1.Encode
   else
       NMUUProcessor1.Decode;
  finally
    InStream.Free;
    OutStream.Free;
  end;
end;

    Приведем текст приложения:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, NMUUE, ComCtrls;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Edit1: TEdit;
    Button1: TButton;
    Label2: TLabel;
    Edit2: TEdit;
    RadioGroup1: TRadioGroup;
    RadioGroup2: TRadioGroup;
    Button2: TButton;
    NMUUProcessor1: TNMUUProcessor;
    OpenDialog1: TOpenDialog;
    StatusBar1: TStatusBar;
    procedure Button2Click(Sender: TObject);
    procedure NMUUProcessor1BeginDecode(Sender: TObject);
    procedure NMUUProcessor1BeginEncode(Sender: TObject);
    procedure NMUUProcessor1EndDecode(Sender: TObject);
    procedure NMUUProcessor1EndEncode(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button2Click(Sender: TObject);
//Кнопка "Выполнить"
var
  InStream,
  OutStream: TFileStream;
begin
  InStream := TFileStream.Create(Edit1.Text, fmOpenRead);
  OutStream := TFileStream.Create(Edit2.Text, fmCreate);
  try
   If RadioGroup2.ItemIndex=1 then
       NMUUProcessor1.Method := uuMIME
   else
       NMUUProcessor1.Method := uuCode;
   NMUUProcessor1.InputStream := InStream;
   NMUUProcessor1.OutputStream := OutStream;
   If RadioGroup1.ItemIndex=0 then
       NMUUProcessor1.Encode
   else
       NMUUProcessor1.Decode;
  finally
    InStream.Free;
    OutStream.Free;
  end;
end;

procedure TForm1.NMUUProcessor1BeginDecode(Sender: TObject);
begin
  StatusBar1.SimpleText := 'Декодируем файл';
end;

procedure TForm1.NMUUProcessor1BeginEncode(Sender: TObject);
begin
  StatusBar1.SimpleText := 'Кодируем файл';
end;

procedure TForm1.NMUUProcessor1EndDecode(Sender: TObject);
begin
  StatusBar1.SimpleText := 'Декодирование закончено';
end;

procedure TForm1.NMUUProcessor1EndEncode(Sender: TObject);
begin
  StatusBar1.SimpleText := 'Кодирование закончено';
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  If OpenDialog1.Execute then
    Edit1.Text := OpenDialog1.FileName;
end;

end.
Текст этого приложения можно взять здесь.

    На следующем шаге мы рассмотрим компонент TProwersock.




Предыдущий шаг Содержание Следующий шаг