Delphi World - Инстолятор
Delphi World - это проект, являющийся сборником статей и малодокументированных возможностей  по программированию в среде Delphi. Здесь вы найдёте работы по следующим категориям: delphi, delfi, borland, bds, дельфи, делфи, дэльфи, дэлфи, programming, example, программирование, исходные коды, code, исходники, source, sources, сорцы, сорсы, soft, programs, программы, and, how, delphiworld, базы данных, графика, игры, интернет, сети, компоненты, классы, мультимедиа, ос, железо, программа, интерфейс, рабочий стол, синтаксис, технологии, файловая система...
Инстолятор

Однажды известный галерейщик Марат Гельман ставил на свой домашний компьютер Виндоус. Через час он понял, что это геморрой. Через два часа - он за#лся. Через три - сообразил, что этот процесс лишен всякого смысла. Через четыре - он начал находить своеобразную красоту в перекрестных ссылках и смене окошек. Через пять - он решил, что нормальный человек этим заниматься не будет. Через шесть - до него дошло, что умные делают как-то по другому. Через семь - у него возникло предположение, что над ним издеваются. Когда на исходе восьмого часа Виндоус все же удалось поставить, Гельман понял, что ставить Виндоус - это тоже искусство. С тех пор, видя что-либо, чем-то напоминающее вышеперичисленное, известный галерейщик с ходу обзывал это инсталляцией.


{ this is a setup program for an application I wrote.
  Maybe it's useful to others who are about to write their
  own Setup-programs.

  Dr. Norbert Hartkamp
  hartkamp@uni-duesseldorf.de
  n-hartkamp@nadeshda.gun.de
}

{file setupscl.pas}
program Setupscl;

uses
  Forms,
  Setupsc1 in 'SETUPSC1.PAS' {Form1};

{$R *.RES}

begin
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.

{file setupsc1.pas}
unit Setupsc1;

interface

uses
  SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
  Forms, Dialogs, StdCtrls, Buttons, ExtCtrls, LZExpand, DdeMan;

const ProgName   = 'SCL90.EXE';
      LZProgName = 'SCL90.EX_';
type
  TForm1 = class(TForm)
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    Panel1: TPanel;
    Label1: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label2: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Panel2: TPanel;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    ProgrammpfadEdit: TEdit;
    DatenpfadEdit: TEdit;
    Label11: TLabel;
    Label12: TLabel;
    Panel3: TPanel;
    Label14: TLabel;
    AuswerterEdit: TEdit;
    Label15: TLabel;
    Inst1Edit: TEdit;
    Inst2Edit: TEdit;
    Inst3Edit: TEdit;
    CheckBox1: TCheckBox;
    Panel4: TPanel;
    Image1: TImage;
    Label13: TLabel;
    Label16: TLabel;
    Label17: TLabel;
    DdeClientConv1: TDdeClientConv;
    Image2: TImage;
    Label19: TLabel;
    Label20: TLabel;
    Label18: TLabel;
    Panel5: TPanel;
    Label21: TLabel;
    Label22: TLabel;
    Label23: TLabel;
    Label24: TLabel;
    Label25: TLabel;
    Label26: TLabel;
    procedure FormPaint(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
    DialogNo            : byte;
    WinDir              : array [0..144] of char;
    Programmverzeichnis : string[127];
    Datenverzeichnis    : string[127];
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.FormPaint(Sender: TObject);
var   Rows, Height:Integer;
begin
  Height:=(ClientHeight + 255) div 256;
  for Rows := 0 to 255 do
  begin
    Canvas.Brush.Color := RGB(0,0,Rows);
    Canvas.FillRect(Rect(0,(255-Rows)*Height,ClientWidth,((255-Rows)+1)*Height));
  end;
  Canvas.Font.Size := 32;
  Canvas.Font.Color:= clBlack;
  Canvas.Brush.Style := bsClear;
  Canvas.TextOut(13, 13, 'Setup SCL-90-Auswertung');
  Canvas.Font.Color:= clYellow;
  Canvas.TextOut(10, 10, 'Setup SCL-90-Auswertung');
  Canvas.Font.Size := 11;
  Canvas.Font.Style:= [fsBold];
  Canvas.Font.Color:= clWhite;
  Canvas.TextOut(10, ClientHeight-(ClientHeight div 20), '=AE N.Hartkamp, 1996');
end;

procedure TForm1.FormCreate(Sender: TObject);
var fileHandle: THandle;
    fileBuffer: Array [0..40] of Char;
begin
  BorderStyle := bsNone;
  WindowState := wsMaximized;
  BitBtn1.Top := trunc(ClientHeight * 0.90);
  BitBtn2.Top := trunc(ClientHeight * 0.90);
  BitBtn1.Left:= trunc(ClientWidth  * 0.80);
  BitBtn2.Left:= trunc(ClientWidth  * 0.60);
  DialogNo := 0;
  FillChar(WinDir, SizeOf(WinDir), #0);
  GetWindowsDirectory(WinDir, 144);
  ProgrammpfadEdit.Text := StrPas(WinDir);
  ProgrammpfadEdit.Text := ProgrammpfadEdit.Text[1] + ':\\SCL90R';
  DatenpfadEdit.Text := ProgrammpfadEdit.Text;
  AuswerterEdit.Text := 'Anwendername';

  { Get user name and company name }
  fileHandle := LoadLibrary('USER');

  if fileHandle >= HINSTANCE_ERROR then begin
    If LoadString(fileHandle, 514, @fileBuffer, 40) <> 0 Then
       AuswerterEdit.Text :=3D StrPas(fileBuffer);
    FreeLibrary(fileHandle);
  end;

  Inst1Edit.Text := 'Bezeichnung der Institution';
  Inst2Edit.Text := 'Bezeichnung der Institution (Fortsetzung)';
  Inst3Edit.Text := '- z.B.: Angabe der Abteilung -';
  CheckBox1.Checked := true;

  Panel1.Left := (ClientWidth  div 2) - (Panel1.Width  div 2);
  Panel1.Top  := (ClientHeight div 2) - (Panel1.Height div 2);

  Panel2.Left := (ClientWidth  div 2) - (Panel2.Width  div 2);
  Panel2.Top  := (ClientHeight div 2) - (Panel2.Height div 2);

  Panel3.Left := (ClientWidth  div 2) - (Panel3.Width  div 2);
  Panel3.Top  := (ClientHeight div 2) - (Panel3.Height div 2);

  Panel4.Left := (ClientWidth  div 2) - (Panel4.Width  div 2);
  Panel4.Top  := (ClientHeight div 2) - (Panel4.Height div 2);

  Panel5.Left := (ClientWidth  div 2) - (Panel5.Width  div 2);
  Panel5.Top  := (ClientHeight div 2) - (Panel5.Height div 2);
end;

procedure TForm1.BitBtn2Click(Sender: TObject);
begin
  Close;
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
var aResultStr : array[0..144] of char;
    strIniPath : array[0..144] of char;
    ResultStr  : string[144];
    fromStruct : TOFStruct;
    toStruct   : TOFStruct;
    ret        : word;
    fromHandle : integer;
    toHandle   : integer;
    BDEOk      : boolean;
    CurPath    : string[144];
    Ok         : Longint;
    i          : word;
    DDE_Link   : Boolean;
    Macro      : string;


  function iif(cond : boolean; exp1, exp2 : string) : string;
  begin
    if cond then result := exp1 else result := exp2;
  end;

begin
  if DialogNo = 0 then begin
    ret := GetProfileString('IDAPI', 'CONFIGFILE01', 'NIX', aResultStr,
 80);
    ResultStr := StrPas(aResultStr);
    BDEOk := (ResultStr <> 'NIX') and FileExists(ResultStr);
    if not BDEOk then begin
      Panel1.Hide;
      MessageDlg('Installationsfehler:'+#13#13+
                 'Bevor Sie das SCL-90 Auswertungsprogramm installieren'+
#13+
                 'k=F7nnen, m=B3ssen Sie die Database-Engine installieren
.'+#13#13+
                 'F=B3hren Sie dazu das Program SETUP.EXE von'+#13+
                 'der BDE-Diskette 1 aus.', mtError, [mbOk], 0);
      Close;
    end;
  end;
  Inc(DialogNo);
  case DialogNo of
    1: begin
         Panel1.Hide;
         Panel2.Show;
         ProgrammpfadEdit.SetFocus;
       end;
    2: begin
         GetDir(0, CurPath);
         Ok  := 0;
         ret := IOResult;
         {$I-}
         ChDir(ProgrammpfadEdit.Text);
         if IOResult <> 0 then ok := 1;
         ChDir(DatenpfadEdit.Text);
         if IOResult <> 0 then if ok = 0 then ok := 2 else ok := 3;
         if ok <> 0 then begin
           case ok of
             1 : CurPath := 'Das Programmverzeichnis ist ';
             2 : CurPath := 'Das Datenverzeichnis ist ';
             3 : CurPath := 'Programm- und Datenverzeichnis sind ';
           end;
           Panel2.Hide;
           if MessageDlg(CurPath + 'nicht vorhanden'+#13+
                        iif(ok=3,'Sollen die Verzeichnisse ', 'Soll das
 Verzeichnis ') +
                        'angelegt werden?', mtConfirmation, [mbYes, mbNo]
, 0) = mrNo
             then begin
               Panel2.Show;
               Dec(DialogNo);
               if odd(Ok) then ProgrammpfadEdit.SetFocus
                          else DatenpfadEdit.SetFocus;
             end else begin
               MkDir(ProgrammpfadEdit.Text);
               MkDir(DatenpfadEdit.Text);
               DialogNo := 2;
               ret := IOResult;
               Ok  := 0;
             end;
         end;
         ChDir(CurPath);
         if Ok = 0 then begin
           Panel2.Hide;
           Panel3.Show;
           AuswerterEdit.SetFocus;
         end;
       end;
    3: begin
         Panel3.Hide;
         Panel4.Show;
         Invalidate;
         Application.ProcessMessages;
         ResultStr := ProgrammpfadEdit.Text;
         if ResultStr[length(ResultStr)] <> '\\' then ResultStr := ResultStr
         + '\\';
         StrPCopy(strIniPath, ResultStr + 'SCL90.INI');
         WritePrivateProfileString('Passwort', 'Passwort', '=C1=C2=BF',
         strIniPath);

         StrPCopy(aResultStr, DatenpfadEdit.Text);
         WritePrivateProfileString('Vorgaben', 'Datenpfad', aResultStr,
         strIniPath);

         StrPCopy(aResultStr, Inst1Edit.Text);
         WritePrivateProfileString('Vorgaben', 'Inst1'    , aResultStr,
         strIniPath);

         StrPCopy(aResultStr, Inst2Edit.Text);
         WritePrivateProfileString('Vorgaben', 'Inst2'    , aResultStr,
         strIniPath);

         StrPCopy(aResultStr, Inst3Edit.Text);
         WritePrivateProfileString('Vorgaben', 'Inst3'    , aResultStr,
         strIniPath);

         StrPCopy(aResultStr, AuswerterEdit.Text);
         WritePrivateProfileString('Vorgaben', 'Auswerter', aResultStr,
         strIniPath);

         WritePrivateProfileString('Vorgaben', 'TWerte',    '1', strIniPath);

         fromHandle := LZOpenFile(LZProgName, fromStruct, OF_READ);
         ResultStr  := ProgrammpfadEdit.Text;
         if ResultStr[length(ResultStr)] <> '\\' then ResultStr := ResultStr
         + '\\';
         StrPCopy(aResultStr, ResultStr+ProgName);
         toHandle   := LZOpenFile(aResultStr, toStruct, OF_CREATE);
         ok := LZCopy(fromHandle, toHandle);
         if ok < 0 then begin
           case ok of
             LZERROR_BADINHANDLE  : ResultStr := 'Das Handle, das die
             Quelldatei bezeichnet, ist nicht g=B3ltig.';
             LZERROR_BADOUTHANDLE : ResultStr := 'Das Handle, das die
             Zieldatei bezeichnet, ist nicht g=B3ltig.';
             LZERROR_BADVALUE     : ResultStr := 'Der eingegebene Parameter
             ist au=DFerhalb des erlaubten Bereichs.';
             LZERROR_GLOBALLOC    : ResultStr := 'F=B3r die ben=F7tigten
             Puffer steht nicht gen=B3gend Speicher zu'+ 'Verf=B3gung.';
             LZERROR_GLOBLOCK     : ResultStr := 'Das Handle, das die
             internen Datenstrukturen bezeichnet, ist nicht'+
                                                 'g=B3ltig.';
             LZERROR_READ         : ResultStr := 'Die Quelldatei hat ein
             ung=B3ltiges Format.';
             LZERROR_UNKNOWNALG   : ResultStr := 'Die Quelldatei ist mi=
t einem unbekannten Algorithmus komprimiert worden.';
             LZERROR_WRITE        : ResultStr := 'Es steht nicht gen=B3=
gend Platz f=B3r die Ausgabedatei zur Verf=B3gung.';
           end;
           MessageDlg('Fehler beim Expandieren von SCL90.EXE:'+#13#13+
                      ResultStr, mtError, [mbOk], 0);
         end else
         begin
           Panel4.Hide;
           Ok := 0;
           with DdeClientConv1 do begin
             DDE_Link := FALSE;
             DDE_LINK := SetLink('ProgMan','ProgMan');
             if DDE_LINK = TRUE then
             begin
               OpenLink;
               Macro := ' [CreateGroup ("SCL-90-Auswertung")]';
               StrPCopy (aResultStr, Macro);
               if not ExecuteMacro(aResultStr, False) then
                 MessageDlg('Programmgruppe konnte nicht eingerichtet
                 werden...',
                            mtInformation, [mbOK],  0) else
               begin
                 Macro := ' [ShowGroup("SCL90AUS.GRP",1)]';
                 StrPCopy (aResultStr, Macro);
                 ExecuteMacro(aResultStr, False);
                 ResultStr  := ProgrammpfadEdit.Text;
                 if ResultStr[length(ResultStr)] <> '\\'
                   then ResultStr := ResultStr + '\\'+ProgName;

                 Macro := ' [AddItem('+ResultStr+
                          ', "SCL-90-Eingabe", )]';
                 StrPCopy (aResultStr, Macro);
                 if not ExecuteMacro(aResultStr, False) then
                   MessageDlg('Programm konnte nicht in Gruppe eingef=B3g=
t werden...',
                              mtInformation, [mbOK],  0) else
                 begin
                   Panel4.Hide;
                   Panel5.Show;
                 end;
               end;
               CloseLink;
             end; { if DDE_LINK = TRUE }
           end; { with DdeClientConv1 do }
         end; { ok > 0 }
       end { DialogNo = 3 }
    else Close; { => end of program }
  end; { of case }
end; { TForm1.BitBtn1Click }

end.

{ file setupscl.dfm }
object Form1: TForm1
  Left = 200
  Top = 99
  Width = 435
  Height = 300
  Caption = 'Form1'
  Font.Color = clWindowText
  Font.Height = -13
  Font.Name = 'System'
  Font.Style = []
  PixelsPerInch = 96
  TextHeight = 16
end


{ file setupsc1.dfm }
object Form1: TForm1
  Left = -4
  Top = -4
  Width = 648
  Height = 488
  BorderIcons = []
  Caption = 'Form1'
  Color = clBlack
  Font.Color = clBlack
  Font.Height = -43
  Font.Name = 'Arial'
  Font.Style = [fsBold, fsItalic]
  PixelsPerInch = 96
  WindowState = wsMaximized
  OnCreate = FormCreate
  OnPaint = FormPaint
  TextHeight = 49
  object BitBtn1: TBitBtn
    Left = 648
    Top = 512
    Width = 97
    Height = 33
    Caption = 'Weiter...'
    Font.Color = clBlack
    Font.Height = -13
    Font.Name = 'System'
    Font.Style = [fsBold]
    ParentFont = False
    TabOrder = 0
    OnClick = BitBtn1Click
    Kind = bkOK
  end
  object BitBtn2: TBitBtn
    Left = 528
    Top = 512
    Width = 97
    Height = 33
    Font.Color = clBlack
    Font.Height = -13
    Font.Name = 'System'
    Font.Style = [fsBold]
    ParentFont = False
    TabOrder = 1
    OnClick = BitBtn2Click
    Kind = bkCancel
  end
  object Panel1: TPanel
    Left = 128
    Top = 112
    Width = 400
    Height = 217
    TabOrder = 2
    object Label1: TLabel
      Left = 25
      Top = 40
      Width = 147
      Height = 16
      Caption = 'Herzlich Willkommen! '
      Font.Color = clBlack
      Font.Height = -13
      Font.Name = 'System'
      Font.Style = [fsBold]
      ParentFont = False
    end
    object Label3: TLabel
      Left = 25
      Top = 64
      Width = 294
      Height = 16
      Caption = 'Dieses Setup-Programm richtet das SCL-90-R'
      Font.Color = clBlack
      Font.Height = -13
      Font.Name = 'System'
      Font.Style = [fsBold]
      ParentFont = False
    end
    object Label4: TLabel
      Left = 25
      Top = 80
      Width = 266
      Height = 16
      Caption = 'Eingabe- und Auswertungsprogramm auf '
      Font.Color = clBlack
      Font.Height = -13
      Font.Name = 'System'
      Font.Style = [fsBold]
      ParentFont = False
    end
    object Label5: TLabel
      Left = 25
      Top = 96
      Width = 126
      Height = 16
      Caption = 'Ihrer Festplatte ein.'
      Font.Color = clBlack
      Font.Height = -13
      Font.Name = 'System'
      Font.Style = [fsBold]
      ParentFont = False
    end
    object Label2: TLabel
      Left = 25
      Top = 120
      Width = 337
      Height = 16
      Caption = 'Wenn Sie das Programm nicht installieren m=F7chten,'
      Font.Color = clBlack
      Font.Height = -13
      Font.Name = 'System'
      Font.Style = [fsBold]
      ParentFont = False
    end
    object Label6: TLabel
      Left = 25
      Top = 136
      Width = 265
      Height = 16
      Caption = 'k=F7nnen Sie den Vorgang jetzt abbrechen.'
      Font.Color = clBlack
      Font.Height = -13
      Font.Name = 'System'
      Font.Style = [fsBold]
      ParentFont = False
    end
    object Label7: TLabel
      Left = 25
      Top = 160
      Width = 341
      Height = 16
      Caption = 'Um fortzufahren dr=B3cken Sie bitte die Eingabetaste..=
.'
      Font.Color = clBlack
      Font.Height = -13
      Font.Name = 'System'
      Font.Style = [fsBold]
      ParentFont = False
    end
  end
  object Panel3: TPanel
    Left = 120
    Top = 104
    Width = 401
    Height = 225
    Font.Color = clBlack
    Font.Height = -13
    Font.Name = 'System'
    Font.Style = []
    ParentFont = False
    TabOrder = 4
    Visible = False
    object Label14: TLabel
      Left = 16
      Top = 22
      Width = 64
      Height = 16
      Caption = 'Auswerter'
    end
    object Label15: TLabel
      Left = 16
      Top = 70
      Width = 260
      Height = 16
      Caption = 'Bezeichnung der Institution (drei Zeilen)'
    end
    object AuswerterEdit: TEdit
      Left = 16
      Top = 40
      Width = 177
      Height = 24
      TabOrder = 0
      Text = 'AuswerterEdit'
    end
    object Inst1Edit: TEdit
      Left = 16
      Top = 88
      Width = 345
      Height = 24
      TabOrder = 1
      Text = 'Inst1Edit'
    end
    object Inst2Edit: TEdit
      Left = 16
      Top = 120
      Width = 345
      Height = 24
      TabOrder = 2
      Text = 'Inst2Edit'
    end
    object Inst3Edit: TEdit
      Left = 16
      Top = 152
      Width = 345
      Height = 24
      TabOrder = 3
      Text = 'Inst3Edit'
    end
    object CheckBox1: TCheckBox
      Left = 16
      Top = 184
      Width = 161
      Height = 17
      Caption = 'Anzeige mit T-Werten'
      TabOrder = 4
    end
  end
  object Panel2: TPanel
    Left = 128
    Top = 112
    Width = 401
    Height = 185
    TabOrder = 3
    Visible = False
    object Label8: TLabel
      Left = 16
      Top = 16
      Width = 274
      Height = 16
      Caption = 'Bitte geben Sie das Programmverzeichnis'
      Font.Color = clBlack
      Font.Height = -13
      Font.Name = 'System'
      Font.Style = [fsBold]
      ParentFont = False
    end
    object Label9: TLabel
      Left = 16
      Top = 32
      Width = 198
      Height = 16
      Caption = 'und das Datenverzeichnis ein:'
      Font.Color = clBlack
      Font.Height = -13
      Font.Name = 'System'
      Font.Style = [fsBold]
      ParentFont = False
    end
    object Label10: TLabel
      Left = 16
      Top = 68
      Width = 71
      Height = 16
      Caption = 'Programm:'
      Font.Color = clBlack
      Font.Height = -13
      Font.Name = 'System'
      Font.Style = [fsBold]
      ParentFont = False
    end
    object Label11: TLabel
      Left = 16
      Top = 100
      Width = 42
      Height = 16
      Caption = 'Daten:'
      Font.Color = clBlack
      Font.Height = -13
      Font.Name = 'System'
      Font.Style = [fsBold]
      ParentFont = False
    end
    object Label12: TLabel
      Left = 14
      Top = 136
      Width = 341
      Height = 16
      Caption = 'Um fortzufahren dr=B3cken Sie bitte die Eingabetaste...'
      Font.Color = clBlack
      Font.Height = -13
      Font.Name = 'System'
      Font.Style = [fsBold]
      ParentFont = False
    end
    object ProgrammpfadEdit: TEdit
      Left = 104
      Top = 64
      Width = 225
      Height = 24
      Font.Color = clBlack
      Font.Height = -13
      Font.Name = 'System'
      Font.Style = []
      ParentFont = False
      TabOrder = 0
      Text = 'ProgrammpfadEdit'
    end
    object DatenpfadEdit: TEdit
      Left = 104
      Top = 96
      Width = 225
      Height = 24
      Font.Color = clBlack
      Font.Height = -13
      Font.Name = 'System'
      Font.Style = []
      ParentFont = False
      TabOrder = 1
      Text = 'DatenpfadEdit'
    end
  end
  object Panel4: TPanel
    Left = 152
    Top = 160
    Width = 337
    Height = 113
    Font.Color = clBlack
    Font.Height = -13
    Font.Name = 'System'
    Font.Style = []
    ParentFont = False
    TabOrder = 5
    Visible = False
    object Image1: TImage
      Left = 256
      Top = 40
      Width = 33
      Height = 33
      Picture.Data = {
        055449636F6E0000010001002020100000000000E80200001600000028000000
        2000000040000000010004000000000080020000000000000000000000000000
        0000000000000000000080000080000000808000800000008000800080800000
        C0C0C000808080000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000
        FFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF333333FFFFFFFFFFFFFFFFF
        FFFFFFFFFF33FF33FFFFF11FFFFFF1111FFFFFFFFFF3FFFFFFFFFFF115FF11FF
        1155FFFFFFF33FFFFFFFFFFF115511F511F55FFFFFF33FFFFFFFFF11111511F5
        11F55FFFFFF33FFFFFFFF11FF11511F511F55444FFF33FFFFFFFF11F511F1145
        11F55FF4FFFF33FFFFF9911F5119119511F55FF4FFF3333FFFFFF11F51191199
        11F55FF4FFFFFFFFFFFFFF111199511114F55FF4FFFFFFFFFFFF999995996699
        55556666FFF3333FFFF99FF99F99449944F66FF6FF33FFF33FF99FF99F994499
        64F66F56F33FFFFFFFF99FF99F99F69966F66556F33FFFFFFFF99FF99F996699
        66566556F33FFFFFFFFF9999FFF9999566566556F333FFFFFFFFFF22FFFF6655
        66566556FF33FFFF3FFFFFFF22FF665566566556FFF33FFF33FFFFFFF22FF666
        62556666FFFFF333F3FFFFF222CCF255F2CCCC5FFFFFFFFFFFFFFF22FF22CC25
        5CCFFCC5F3F333FFFFFFFF22AA22FCCFACCAFCCFF33FF33FFFFFFF22FFACCCCC
        ACCAACC1FF3FF33FFFFFFF22FFCCA2CCACCAACCFFFFF333FFFFFFFF22ACCAACC
        ACCAACCFFFFF33FFFFFFFFFFAACCAACCACCAACCFFFF33FFFFFFFFFFFAACCAACC
        ACCAACCFFFF33FF3FFFFFFFFAAFCCCCAA1CCCCFFFFF33F33FFFFFFFFAAFFAA1A
        A11AA1FFFFFF333F3FFFFFFFFAAAA11FAAAA11FFFFFFFFFFFFFFFFFFFFFFFF11
        11FFF11100000000000000000000000000000000000000000000000000000000
        0000000000000000000000000000000000000000000000000000000000000000
        0000000000000000000000000000000000000000000000000000000000000000
        0000000000000000000000000000000000000000000000000000000000000000
        00000000}
    end
    object Label13: TLabel
      Left = 24
      Top = 24
      Width = 117
      Height = 16
      Caption = 'Einrichtung l=F5uft...'
    end
    object Label16: TLabel
      Left = 24
      Top = 48
      Width = 166
      Height = 16
      Caption = 'Erstellen von SCL90.INI...'
    end
    object Label17: TLabel
      Left = 24
      Top = 72
      Width = 198
      Height = 16
      Caption = 'Kopieren der Programmdatei...'
    end
  end
  object Panel5: TPanel
    Left = 120
    Top = 80
    Width = 353
    Height = 281
    Font.Color = clBlack
    Font.Height = -13
    Font.Name = 'System'
    Font.Style = []
    ParentFont = False
    TabOrder = 6
    Visible = False
    object Image2: TImage
      Left = 24
      Top = 16
      Width = 33
      Height = 33
      Picture.Data =3D {
        055449636F6E0000010001002020100000000000E80200001600000028000000
        2000000040000000010004000000000080020000000000000000000000000000
        0000000000000000000080000080000000808000800000008000800080800000
        C0C0C000808080000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000
        FFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF333333FFFFFFFFFFFFFFFFF
        FFFFFFFFFF33FF33FFFFF11FFFFFF1111FFFFFFFFFF3FFFFFFFFFFF115FF11FF
        1155FFFFFFF33FFFFFFFFFFF115511F511F55FFFFFF33FFFFFFFFF11111511F5
        11F55FFFFFF33FFFFFFFF11FF11511F511F55444FFF33FFFFFFFF11F511F1145
        11F55FF4FFFF33FFFFF9911F5119119511F55FF4FFF3333FFFFFF11F51191199
        11F55FF4FFFFFFFFFFFFFF111199511114F55FF4FFFFFFFFFFFF999995996699
        55556666FFF3333FFFF99FF99F99449944F66FF6FF33FFF33FF99FF99F994499
        64F66F56F33FFFFFFFF99FF99F99F69966F66556F33FFFFFFFF99FF99F996699
        66566556F33FFFFFFFFF9999FFF9999566566556F333FFFFFFFFFF22FFFF6655
        66566556FF33FFFF3FFFFFFF22FF665566566556FFF33FFF33FFFFFFF22FF666
        62556666FFFFF333F3FFFFF222CCF255F2CCCC5FFFFFFFFFFFFFFF22FF22CC25
        5CCFFCC5F3F333FFFFFFFF22AA22FCCFACCAFCCFF33FF33FFFFFFF22FFACCCCC
        ACCAACC1FF3FF33FFFFFFF22FFCCA2CCACCAACCFFFFF333FFFFFFFF22ACCAACC
        ACCAACCFFFFF33FFFFFFFFFFAACCAACCACCAACCFFFF33FFFFFFFFFFFAACCAACC
        ACCAACCFFFF33FF3FFFFFFFFAAFCCCCAA1CCCCFFFFF33F33FFFFFFFFAAFFAA1A
        A11AA1FFFFFF333F3FFFFFFFFAAAA11FAAAA11FFFFFFFFFFFFFFFFFFFFFFFF11
        11FFF11100000000000000000000000000000000000000000000000000000000
        0000000000000000000000000000000000000000000000000000000000000000
        0000000000000000000000000000000000000000000000000000000000000000
        0000000000000000000000000000000000000000000000000000000000000000
        00000000}
    end
    object Label19: TLabel
      Left = 24
      Top = 64
      Width = 256
      Height = 16
      Caption = 'Die Einrichtung des SCL-Programms ist'
    end
    object Label20: TLabel
      Left = 24
      Top = 80
      Width = 103
      Height = 16
      Caption = 'abgeschlossen.'
    end
    object Label18: TLabel
      Left = 24
      Top = 112
      Width = 294
      Height = 16
      Caption = 'Das SCL-Programm verwendet ein Passwort, '
    end
    object Label21: TLabel
      Left = 24
      Top = 240
      Width = 260
      Height = 16
      Caption = 'Eingabetaste dr=B3cken, um zu beenden...'
    end
    object Label22: TLabel
      Left = 24
      Top = 128
      Width = 254
      Height = 16
      Caption = 'um bestimmte Programmfunktionen zu '
    end
    object Label23: TLabel
      Left = 24
      Top = 144
      Width = 63
      Height = 16
      Caption = 'sch=B3tzen.'
    end
    object Label24: TLabel
      Left = 24
      Top = 160
      Width = 300
      Height = 16
      Caption = 'Dieses Passwort k=F7nnen Sie jederzeit =F5ndern.'
    end
    object Label25: TLabel
      Left = 24
      Top = 176
      Width = 235
      Height = 16
      Caption = 'Das voreingestellte Passwort lautet:'
    end
    object Label26: TLabel
      Left = 144
      Top = 208
      Width = 39
      Height = 22
      Caption = 'SCL'
      Font.Color = clBlack
      Font.Height = -19
      Font.Name = 'Arial'
      Font.Style = [fsBold]
      ParentFont = False
    end
  end
  object DdeClientConv1: TDdeClientConv
    ServiceApplication = 'ProgMan'
    ConnectMode = ddeManual
    Left = 88
    Top = 32
  end
end

{ file scl90.ex_ (UUencoded) }
begin 644 SCL90.EX_
M4UI$1(CP)S-!90`H``#_35H``0$```#_"``0`/__"``)`/3Q]?!``@,.#1T+
M`03P,PU##5,-8`FZ$``._Q^T"<TAN`%,_\\TAD)!4:&ES_R!P<F]G<F%M_R!R
M97%U:7)E_W,@36EC<F]S_V]F=3D"!7:6YD?V]W<RX-"B3@_?"Z#<H-V@WK\\DY%
M!@'WTP#&`@(*`P,`7P`@`""@\\_(#"1#W!P`-!P!8`(T`/Y8`I`"9`O\\!_O#Q
M`!T0`@/]`*T1$!W_K1$9`/$(4`W_\\0@C`.8`00V_L@,(``.``0,D7@D0$!P"
M@`(!#DL4W2<``!`<+&`$"$W_04E.24-/3@7?4T-,.3`J`@@`_PP`$0`:`"$`
M_R8```9+15)._T5,`T=3D$2015_U-%4@A+15E"ST]!4D25%*`;(/^_`,T_`?D0
MQ1'G;0_%$;8&Q1&.!\\41K:C<$@0(Q1%KZ!*3[03%$5P%Q1&B#P&VQA"^#<41
MH0[%$>&J#"(9T!(PT!)*RA$"M!T0)B!A*B(M`24A1]8V(H\\#)2&AW!$"_[;6
M$0)W]!$"?%0BW5;H$0*Y8"+22"(H^A%K`EAR(GUR(IT%`@'_"7-C;#DP+D4#
M6$5@#:(MLBW"+=3D(M(`S_+"!!8W1U86R?;'DL('2!`8(`;O]O=3D"!A(&9U;G]C
M=3D&EO;F%LA`7_+CP@271S(&_W;FQYC`!A<V]N_R!F;W(@8F5ILVYG`C#\\(6%T
M_2!E?W)E(&UU<W0T,)\\@<V]M9?X@.#`A_#`R1#`@<V5T=3D7!VA`9T;V4Q('5P
M'C'_9B!Y;W4@;&EU:T@P>64\\86YD@C+W=3DV%N0C!O(&UO?V1I9GD@:70P,O\\V
M('5S92!W:?MT:((Q<B!O=3DV[_(&%P<&QI8V'H$#$\\,(,P)T<P9G)E]65S,61U
M,&\\N+2"=3D09XP;6%Y3S!$,&[RW#)DAC/I,7)O<"#[;64),&QI;F4Z_QP@:&%R
M=3D&MA_VUP0'5N:2UD_W5E<W-E;&1O_W)F+F1E&R!N_2TB1FYA9&5S:+]D82YG
M=3D6XZ0`G_(%)E9V%R9'/_+!<@3F]R8F7O<G0@2"-$+"!-?RY$+A0@1/PR1?\\L
M($=3DE<FUA;K]YFO__``"01U5_B>6_L`(>5Y!"?J)"OP(`#E=3DJE$B2K$,OLTVM
M0FS)3:-,CB3?3:U"R_]-K4,!%EVD2TDP*UVM0DU+7:-,:6%=3DTJU"<X%=3DK4*+
MEUS),?W`FD6#[`*+1@;?.T8$?0C*4(E&O_[K!HM&!-50BW]&_HGL7<($PUKY
M?M%=3DX5B`/F<``/]T$_\\V7@"_3GT!I42C3`'K#!AA_B%E_S9,`;@0`%E0D$(^
M8Z-N-F,(/61I4CYC-V(%4VM=3DPY]`GC=3DA_S9N`9!"$6,0QAAKZPT883=3DA<&E>
M`/\\QP%#_-D8!N/T"/62A'``K!B#_`/<F1@%0H1[ZQF`BRF!(`0,&2J$!6V4M
M9'5BIFU0M&"X^P$`MF!"`>C7_A@#<>!FM&(@``=3DQX&8'<9X$=3DD0!Z*01>P=3DS
M(MPE=3DW5B@#YE%&`*@/L^9A1@`^AW_[CU_^AE19]`'H`^9+\\``'4#Z;.S8G:]
M"`MR)?Y0Z.%01E4(DG(&/G(1GG`RHG`V_E`(.\\A@=3D0G*4=3D1@@W1YNG068Y)S
M)G;#=3D13V3G9V!B9ZH2``*RM&",MC(@N`!M=3DA`W#G,=3D)2'H3C=3D`BC(.;G<:,B
MY&?C4$W*!+D`@W+$8CX!0"%R__\\V'`#H7_U0Z,N`_<]C0%>".H$>`)OH1F2`
M9_T^8T6!R_[$4@2A8``!1@3^_U`[!AH`?`:A]QH`*9>"]R88`/\\#1@;$/CH!
M`__XB?B,PHE&_#N)5M]0_(M6XE?*5`\\ZZ#+]-V'*4,=3DM&H(\\J7)Y@(O_4E#_
M4!>`[CYCZ&3]RH5^!#;W_W7\\'9#ZZ*;_?AJ0,<`VB47\\*Y+_^C'`HQP`_P;S
M'@#08)R!=3D5G_#DT>.Y!@`).`0Y(%-Y#Y8+-C>8`D_XG'CO_"!E?_-A@`L'T@
M%7JA2`'WV!Z-!N-IP@)+@Y"`OV6\\@+.2__J#?@8`=3DP/I_YH`Q'X()HH%_SP@
M<C\\\\_W<[L,B3MF`ZD'B!I?YID5B_)H@%_P8<PV$[ST;Z?@:YD_21!AC_`'4$
M5>@(_^O_2#P-=3D095Z/[__NL^/`AU+H/_/AP``'XE_P[TWY'?E%CGDB;&!2#V
M])+\\??N3_.L,//,'=3D:5Q7&-&"/]._P;I7?__=3DOS__W;ZZ&/^@#XVZA1@!4"'
M!DN#C7X&HQ97)G9%@J26%)!"C8]^ZA97`7,$=3D)!""?_`=3D!^#?NP2=3D8\\#Z)S\\
MI:*@IY=3DCQO^#/F(``+``?O\\!0(A&_8I&_?2(@J:4`I!'",!U+-_&!F8``6AS
M`^C;E/O\\J73R#[6_^]X*L0"@<`'IH/\\.;V(`OW$>8+]P'F#G_S9BE$/LK`8Q
MP/>)1OB00HA&^XK[1OL;H!.#?O@`?W8+_T[XL`@^8ZOK+,Z0*-*0),I02/](
M.T;X=3DAJ*5N_[BT;XR)`#^":?B!7_1OAPL#YC@/]^^PUT#8`^-[H48*6VL!IU
MGYR]^':VL747G[;&!0JJL!.P#3YCXW3XO(#"@'>D_I]`Q@9D``&A&/KF@!I#
M93H!B18\\S0&R@097%,5SE8`^Y3B+<!JP9#]CN&#P]U"X`UQY@^P(QG\\&9P`!
MZ)_Y?Y&_4@&9]SY&VF`@90!^@/GZ4&^1H5;:8)=3D&`4AUR":!P#"04%.A5'3!
MV6$B?<`U@<!_^O\\V&@"A6-I@Z4B/PJK%]/ZP^(M&+?J7L'TXW(/^XX;3P-KO
MB/YEH8W[`I'\\*_M&_E.E^NO`Z&'1^6?!1(%@PP(:D8M%LP8]BW#"<`I(^E%>
MZST!+M-`^E%0/0+'`'4+,=3D`,@/I10#WU`TK3`U'3,#T&`/MU!V.Q_NLD/0?[
M`'7V51<]!`!U40PETP%A_5$*W5<(PU.A!`F`^E`4@/^R""S1&O[WP*$^`9FY
M`@![]_D*<E7H3_]\\TUH[T!)BH39`-F!$R]!1-L_09*#YP/Q`A<(*PFIH?-_2
MP`9UPJ,^WX!=3D!*?"HT`!?Y$84X*_4.BT]Z-")N(:?FR"4.BC]Z-$-F",7($-
M<'#W,X!S@T!P8MWW.8#HDOAH?#3XWN56).B(]S=3DAC7Y]W,RDBT;HHT;?@+_<
M`T;DHTC?@-[/HTH!N'S`D$+1X$U0NV:+R!3">,#!$G:_4.CN]EH#NX#^B[@A
MJ^@$/656QK[@&G+68\\'6X+*G4.BMU>/^`<#^Q'X$)HE%RIB`_"#S!JGMXW/0
MH?]&`;$$T^`#PD36X"#S#.CHW>GSYM""D*?1X-%.\\U'V#AWV$)XG]A+HSO8(
M:$#`=3D-\\)@'X$`\\2@H_>>WZ%`?0^*EX#@H(@_A7`!_P9BH9)AP]ZR^W/WN!&U
MIK``_7WGH?_'1OP!`/?K`__#@'[\\T>?_T>>!QV0`'@?^RY`Z1@1U'R:*?T4!
M.D;_=3D18D`"\\",.10)``#,0"T8/_H8/WK!H-^_.<,=3D</C4=3DKRQ@9ES`VQ<7-,
M]F-T<7.`]I12`71E/#9@.A/+-Y*C#1Z.`2``.8`3=3D0_!=3D&"WC-B0@W*.V)"`
M5KBIH+R0_[(.HU[G<`S^.M$&Z#;[Z:<`^ST/T`&`^^F<`%\\]%0%U$/5S"JEP
M_^BK_.F'`#T4YP%U#I)R[P*7_.OG=3D#T%2M"I<78(Z+_C_.MD/20.$@C^\\`%3
M_>M4/0(!_W4)BD8*4.AWW_[K1CT`+A66_OOK.'31!>C__NLW+CT(2A$)_W+0
M2=3D#?!>@3_^NZT`[_0W8,[0(C$4"#P`!6`<#_^HM6_%]>C6;K_A]'@`JEE0+$
M?O\\&)H-]"`!T'Z\\F_W4.HQ`,HQ`(#)!"F1`QP"/PKA-CL0'&X$J$EA2D%ZV3
MF1&)10K@MQ/"'?6D^AV2&(%]`O^QUW4:N/__NOO__R/P%":)51:ZMQ(8(_`:
MZR69$<>/10*RUS,K,R9&(%44,B3M$QP](!X1+:>432+9!3<@42"PUU`@!(#_
M`":-A8``C,+45_$](`XS)A`](!(FY\\9%,$2*B'-2_S;]4F!@4`"_Y@`>=3DJF@
MNO]98/\\V$&!@U1)@8!1@8!8`=3D/\\V(9JS8">&R`">8YR40SR*_O.C@>R6`*$V
M`?^+%C@!HZX`B?,6L(9@BG.)`*&T[P`+!K9S<.E]`-^XY@",VGH3C;Y7:/\\6
M;I`F8&`DTJ`!^LRD&&%R,Q9Y3,>?!T#`)XU^Z*BHMZ46MS*@I+;0->O3B(8^
MF(MP.M^AF@"C1+-AN`#U?Q,W1O@]HT@`QW\\&2@`&`+\\Z[2!`IT0>92U':UVC
M1EQDFNHCP[A0/63K(NLBOV.N`&V+3C"C-B/`.`$S(_Y*-%W+B``#`:'_`04`
M6P`#`*:O`?\\`$:9`JZI``:JF0+BJ0!>F0,FJ0!:JID#.ND3?PD3DND3U6L)$
M^KI$!`*[0Q7R0*K%01KR1"OZ1##R1$&J^D1&\\D10\\D1A^D1FJO)$=3D_I$?/)$
MAO)$EZKZ1)SR1*WZ1++R1,.J^D3(\\D30\\D`2GD`RKP,#`">>0$"24$*^GD!0
M`P(`5YY`5JJB4"V>0&:24+2>0&TJHE`)GD!ZLE2!HE"U0*L!DZI4J))0*)Y`
MMZJ24$2>0-"24*.>0/&JDE"EGD#ZDE"GGD`$KP0#`*2>0"<"8$"JGD`[`F`^
MGD!:"F1OKA)C`(T$BU/T$F0150438SPZ8#V>0%$Z8'U\\ID"4!?\\`")Y`WQP&
M`@`AID"'!K?_`!J>0*4&0V.NU&I@36&_8F`"GD!E!W<#`&BF0(,'_[Q1*P"=3D
MBF`#ID"QBF!]857(@F!MGD#?@F!QGD"UZ8)@<J9`#0B+8Q+ZNF`%GD`J"`,`
M<%JF0"_"8P!?NF`;ID"E>;I@!DYANF`$ID#"ENID`PGK8PCZ8(UA+<KZ8!.F
M0$KZ8&5A70G47U">0&L:<)N>0!H*]EMC`PM38Z`+`@!]79Y`O@L#`+.>0%7*
M0G3>0G3Q0G3]0G2K!PQ#<Q]J=3D$9J=3D%*J:G1P:G1Z:G2&:G0'[PT#`&JF0)L-
M_\\L`%)Y`LZ)PY6`!AF\\.`P!KID#`#I-CJ<["<-5A^<)P!\\1@1*\\/_P`-?&!'
MVG(%*P!GVG`,?&!JZG(-$*KJ=3D'CR=3D(/:<`Y\\8(:N"H(%`,[:<`]\\8-'^&H(#
M`2@0`P`I*IY`."J`*IY`02J`36";`98J@*4!9V`J@"62GD"Q*H`=3D<;XJ@"5Q
MUDHJ@&R>0.0J@*UA[BJ`?K5@`101`P"NGD!5)GJ`K9Y`.7J`.:9`7T,1_P`*
MID!-DH!6K8``4I*`%:9`7)*$U6:2@!FF0&NB@P%][Q$!`#&>0(P1!*X@0`4`
MGY*`$'Q@HOC2@MZ-?&!%58OL'O\\+P'1-C`:X`'^)-I@`B3Z:3##_G`")'IX`
MC`:'H``S4J4.,/*R]X`@_O*R,]*HP'4&0O^H`G4!0H@6PGX<0,``__^+Y>8P
M_[C_3,TA65OK_P0SR3/;H[(`_XO!"\\-T#(/[__]T!X[#)HL>]H^@#K0*D+8`
M@S[UN%H"1EHV-KD*`/^@L@`RY+O5`/_H30"Y$`"AMK\\`N]T`Z$%:,;OOX@#H
M.!*1N\\0`?QY34%"X$!")`_J(D+1*D,0>K@",7<!:D!,SP$HPHX5`_[H`N-(`
M#E`&_U/+PS/2]_&`_\\(P@/HZ<@.`_\\('2X@7"\\!U_^K#4&]R=3D&EO_VYS($-O
M<'ER_VEG:'0@*&,I_R`Q.3@S+#DR_R!";W)L86YDW/*"DK#HD@!#D7(#?I6@
MN,L`Z1;_':7_BTX(BUX*Z'_]`2BD!@"XS`#IV_;^\\H*X`+24BP[_H@#C%8[!
M)@/_!@@`@](`)HMO#@H`.V:@=3D>M#DGCR@A.0B0,+TG4>9:+U&&N@.V^@<P0F
MH>4(=3D*CH0Y+W@%"CL/\\#.P:D`'(?Z'](`'-%@SZD`^#_(*&P`XL>I@!_@^L,
M.\\-W$L>@?^L+Z$,`<R;3H'_H(0!S'J&J73#_K`!T"/\\VL`//_QZJ`#K0TZ!W
MM?]R`S/`F</_-K&H+)`5-#K0<@>)`_CMPSI@)/QEHA*.P=3D_H6@!S$W6G[NB_
M#@!R"^A%#I"B_P"+PXS"PU"A_Z8`Z+'_<C&._\\(S__RX5%"K/S/`J[@,`&NQ
M6[#=3D+7"P4(S`9:(('G^.V8<&"@`?:['_6*M8P[L$`(O_\\R:+'X/[`7+_(R:+
M5P(KT'+_[B:+#W0-B_OVYK")#3T@`HO/)F^)#"8I;Z#XP_>`]V7C9RRRCL.+
MV?\\F@3X``%10=3D7]3]L,#=3D4Z^E[#__B:+-`OV=3D`;_.]YW\\W0\\)HG?-R:)1P)M
MHB:C_P@`!0P`.P:F_P!T0^@%`":)]QV+WYFP`W<")NL[-Z40BZ'P!R:+_T0"
M)@%'`OC#??FM`#O#=3D/A3'Y6Y[HRD);0SP(QDD!;^>*#:=3D!2AH@".]\\`FH7B@
MPW7V)OV)6,",P*.B`.O_O#/`AP:Z`,OW@SZZWR`!RZ&Z_P#IP/R+]#:._BK`
M.U4"?P=3D\\%-\\F.P5R#Y/`!GS_"'\\')CM%!'?_`<NXR0#IF/S_N-<`Z9+\\!0#_
M!'(9*\\1S%?>WV#8[BK!R#,;`#OZCH#:C#@#+N,K_`.EN_+HSTHO_W!XVQ'\\(
M-L7W=3DP3\\;+&PUZNX_8!QLJNKC45TJ^V,;;#__P32,\\"Y_PX`\\ZL&5P97^[E/
MDJ$)K#K(=3DO\\$BLCC"*P*P/]T`ZKB^#+`JG[3,A_*"`"+W.7`CPHVBT<B\\D+0
M[Q$,BD+0"([Q,[@2\\!&.$+K_L=3D?K"+JRU^O/`[JSU_*"F1&+1?\\"/;'7=3D!(]
MLO_7=3D`T]L-=3DT$/W'>\\!F`.LD4@:_5P[H*`!:6M%5_0)<U;L0`.A4`,UT3R*P
MUT.1CR"P`,_K`K`!=3D-8L(G08]"LAAM`(C]%G`.L8_U"[%`#H&`!8_BG0#+L<
M`.@-`%RUVA31)O\\9]X`#U)#W7P?#XL,$)L55_PPFBTT$)HL=3DW[0_S2%RQB!%
M"JY:T,=3D%"#;1!/G1"OK@,.X8Z#/))H=3D-]0@GX4`LX`<KP73'`[AE.^)([5CF
M`C/YP&GC&^*+'8/[!(]V!K0^@^./('_#-?<F@7\\N(2XFBW?_""8[=3DPIT*QZ_
M!E-2)L57(N!?_PH'`]H#\\OS__]`K\\HS"6P<?;R:)=3DPCRD`C#C]'_:`##4%%2
M5P;_4^A"`5L'7UJ[65BUY76\\PW_#0/ZMX;+7=3D3DFBT_^)N!_""O/*]%S_P0#
MRC/2!B;$_W<,`_ZP(/SS?ZHK_@<FB7^XX-]_!'4)4N[@\\0#76P=3D:DZ#(XN)I
M`*H#]$@+]$$3^,$?\\,C[,\\"_X([:)L1?_PP#^_SSI"O[O-?B-O0-4%)6[N"<
M+D/P7EI8\\I#`2_5TT_]>!KC=3D!C/2Z/_L_G4*)H-_&O);`7TGHH\\@K#P-=3D/\\,
M/!IT$3OS=3D?WSLO##._-T":S_/`IT`4XSP,/WN/(&J?<"`+[D+FDPZ%'_NO<U
MQ?6J];J\\\\PI_PP/H%<7U!E]3)O]?%`[DPS4"^1@[!:KT#+B)!XO_3@:+?@B+
M5@K_1^@]_HO'Q'Y?""O'2*J[T@;,\\OT/TO`+JCOSX/++XP59`,/G\\:KT"";O
MB@<RY%8`BU8&_RO0?@50Z%C^WIWP=3D`J+=3DF$!1NBSF/YR!.+!Q7]0D(GO#;@`
M/=3D'3#;`"^_\\%+""SUW0"M/\\\\@'TP`'0)C3M5,"S@6HD%,R-1D?[1TR^+';@`
M1,WO(?;"@#,CB\\B+9]IU%-L"*0`K`/,'^%$B.B`^((E-&(E=3D_QK'11S__\\=3D%
M>1[W`(CB,](SR000_P)"S2$M@`"#[=3DJCH#/`X,#*B]#\\!!%7$(V5@`"Y@/4`
M*.-SAN`SVSO8]W0@@'40&G0#0W_K\\HO3*]"Y09"P5!-1$5SA%^",VNG`"O;E
MP`8V%/#\\._=3DS_P<#\\0/Y3D_]G_.D_([:9-`\\T@@^M1`&-HI'!"[P.=3D!6O4`!
M)\\1@'IY`,,R"?(>`Q&"$``4!4<1@4G6!QR!`S5%QHD"IGD!YGZ)`M8`!*P(%
M)(*Y-AX@C5%,`P6\\@E>L+B`-<`%<+B`1Q&`6ZBI@''Q@&D8B`P%$4035<;O`
MVF`=3D?&`'7B)7!0`?VF`??&`B;B)7!0`UVF`>?&`X?B)7!0!2VF`@?&!7CB)`
MFBVJ+;HMRBW:+>0F!>0IQ8``,U"T@.0E6T$H2?]N86-T:79E(`<E<RG,4+5!
M6T$O/5M!_U105VEN0W)T^C`Y)3`P)P```27O`0`")\\U0)```OP8C```')LQ0
M*/\\``0$A``$"(O\\``0,D`0$&(_<!`0<P.@0`(`+\\,#WFB%)U;G1I;?]E(&5R
M<F]R(+\\P,#`@873!,3"].LDQ+@`-"I5A)/RF0-U0`#P`_P`+5"91ID!4W%``
MF")`HS#!`>Q@ZX0&3?HF'4$`@#@!,?\\D'D#`P,`D0"%!@%Q!$3-!0DM!&)%%
M05A,\\]<S,S]82C-X0/_QQ1]\\0!%_0&9`6$+Q%9__$?\\1565!:T,1OU41]1'U
M7Y=3D%$;L1%:))\\1_QL4)4O42X15$?$46D0/3^=3DT'_^9$?41D1Y9740O-J0<Y`
M&1&9?-1#FT,1F5$1%/5&_YF9E9EFF555^V9FZ$+YG_F?F;]$F43V;_9X0/,]
M/QU49/9O5IE"'5+?]IEF]F4W6&:9\\V961E0-4/_YF97X5%)[0%1`(O__9E6(
M5%%Z06M!(G%5F4!I4?*/+_9F8A519T")0/)_(LSR5?+,S*9`_FI4(LPE7,_\\
MQ?WS:%,BJB+\\SZS?ROS/\\S^90B+__ZS,S*S*K,'_ELE5S*+34<_W`&M!\\B<J
MS*KC55A"JO%5F43\\`&B)0JK\\S,JAS/G,ET%I4JK_JAJAZQJA=3DD$_:T'ZJJ%O
M'ZJJ$5A)$1&!0``.36=3DM=3DVV';9=3DMIVVW;<=3DMN-=3DMXF<F,2`@$)0P`0,`Z`5`
@!4T1?2%],7U!?0!1?6%]<7V!?9%]H7VQ?<%]`-%]X7L`
`
end

Проект Delphi World © Выпуск 2002 - 2017
Автор проекта: Эксклюзивные курсы программирования