unit Unit_PlugSetupForm;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, RzButton, RzRadChk, StdCtrls, Mask, RzEdit, RzLabel, RzPanel,
  ExtCtrls, RzTabs, cxShellBrowserDialog, RzBtnEdt, RzLstBox, inifiles, plug_misc,
  RzSpnEdt, RzChkLst;

type
  TSETUPFORM = class(TForm)
    RzPageControl1: TRzPageControl;
    TSNet: TRzTabSheet;
    TSDir: TRzTabSheet;
    RzPanel1: TRzPanel;
    RzPanel2: TRzPanel;
    GBBase: TRzGroupBox;
    LBBaseServer: TRzLabel;
    LBBasePort: TRzLabel;
    LBBaseLgin: TRzLabel;
    LBBasePassword: TRzLabel;
    EDDBSERVER: TRzEdit;
    EDDBPORT: TRzEdit;
    EDDBLOGIN: TRzEdit;
    EDDBPASSWORD: TRzEdit;
    CBPROXYBASE: TRzCheckBox;
    GBLib: TRzGroupBox;
    LBLibServer: TRzLabel;
    LBLibPort: TRzLabel;
    LBLibLogin: TRzLabel;
    LBLibPassword: TRzLabel;
    EDLIBSERVER: TRzEdit;
    EDLIBPORT: TRzEdit;
    EDLIBLOGIN: TRzEdit;
    EDLIBPASSWORD: TRzEdit;
    CBPROXYLIB: TRzCheckBox;
    GBProxy: TRzGroupBox;
    LBProxyServer: TRzLabel;
    LBProxyPort: TRzLabel;
    LBProxyLogin: TRzLabel;
    LBProxyPassword: TRzLabel;
    EDPROXYSERVER: TRzEdit;
    EDPROXYPORT: TRzEdit;
    EDPROXYLOGIN: TRzEdit;
    EDPROXYPASSWORD: TRzEdit;
    BTCANCEL: TRzButton;
    BTOK: TRzButton;
    RzPanel3: TRzPanel;
    GBPathLoacal: TRzGroupBox;
    BTAdd: TRzBitBtn;
    BTDelete: TRzBitBtn;
    LBPathDownload: TRzLabel;
    EDPATHDOWNLOAD: TRzButtonEdit;
    LBPathSQL: TRzLabel;
    EDPATHSQL: TRzButtonEdit;
    LBPathTemp: TRzLabel;
    EDPATHTEMP: TRzButtonEdit;
    DLG: TcxShellBrowserDialog;
    GBParam: TRzGroupBox;
    LBThread: TRzLabel;
    LBTimeout: TRzLabel;
    LBReconnectAfter: TRzLabel;
    LBTryCount: TRzLabel;
    SETHREAD: TRzSpinEdit;
    SETIMEOUT: TRzSpinEdit;
    SERECONNECTAFTER: TRzSpinEdit;
    SETRYCOUNT: TRzSpinEdit;
    SEDELAYDOWNLOAD: TRzSpinEdit;
    LBDelayDownload: TRzLabel;
    CBGetDataDB: TRzCheckBox;
    TSFormat: TRzTabSheet;
    RzPanel4: TRzPanel;
    CBFormatFile1: TRzCheckBox;
    CBFormatFile2: TRzCheckBox;
    CBFormatFile3: TRzCheckBox;
    CBFormatFile4: TRzCheckBox;
    CBFormatFile5: TRzCheckBox;
    CBFormatFile6: TRzCheckBox;
    CBFormatFile7: TRzCheckBox;
    CBFormatFile8: TRzCheckBox;
    CBFormatFile9: TRzCheckBox;
    LBFormatTitle1: TLabel;
    LBFormatTitle2: TLabel;
    SLPATHLOCAL: TRzCheckList;
    procedure FormCreate(Sender: TObject);
    procedure BTOKClick(Sender: TObject);
    procedure BTAddClick(Sender: TObject);
    procedure BTDeleteClick(Sender: TObject);
    procedure EDPATHDOWNLOADButtonClick(Sender: TObject);
    procedure EDPATHSQLButtonClick(Sender: TObject);
    procedure EDPATHTEMPButtonClick(Sender: TObject);
    procedure SetLang(lng:string);
    procedure FormActivate(Sender: TObject);
  private
   procedure CreateParams(var params: TCreateParams); override;
  public
   pl_fl3_0000,pl_fl3_0001,pl_fl3_0002,pl_fl3_0003,pl_fl3_0004,
   pl_fl3_0005,pl_fl3_0006,pl_fl3_0007,pl_fl3_0008,pl_fl3_0009,
   pl_fl3_0010,pl_fl3_0011,pl_fl3_0012,pl_fl3_0013,pl_fl3_0014,
   pl_fl3_0015,pl_fl3_0016,pl_fl3_0017,pl_fl3_0018,pl_fl3_0019,
   pl_fl3_0020,pl_fl3_0021,pl_fl3_0022,pl_fl3_0023,pl_fl3_0024,
   pl_fl3_0025,pl_fl3_0026,pl_fl3_0027,pl_fl3_0028,pl_fl3_0029,
   pl_fl3_0030,pl_fl3_0031,pl_fl3_0032,pl_fl3_0033,pl_fl3_0034,
   pl_fl3_0035,pl_fl3_0036,pl_fl3_0037,pl_fl3_0038,pl_fl3_0039
   : string;

   dlpath, sqlpath,tmppath, PathTemp, BaseName: widestring;
   http_liburl, http_liblogin, http_libpasswd,
   http_baseurl, http_baselogin, http_basepasswd,
   http_proxyurl, http_proxylogin, http_proxypasswd: widestring;
   http_libport, http_baseport, http_proxyport: integer;
   http_delaydownload, http_thread, http_timeout, http_TryCount, http_ReconnectAfter: integer;
   enable_proxylib,enable_proxybase,enable_proxyprg,GetDataDB: Boolean;
   procedure loadconf;
   procedure saveconf;
  end;

var
  SETUPFORM: TSETUPFORM;

implementation

{$R *.dfm}

// Цепляем форму к приложению
procedure TSETUPFORM.Createparams(var params: TCreateParams);
var
  aHWnd: HWND;
begin
  inherited;
  {как-нибудь получаем существующий дескриптор}
  ahWnd := GetForegroundWindow;
  {а теперь:}
  params.WndParent := ahWnd;
end;



procedure TSETUPFORM.EDPATHDOWNLOADButtonClick(Sender: TObject);
begin
 if dlg.Execute then EDPATHDOWNLOAD.Text:=IncludeTrailingBackslash(dlg.Path);
end;

procedure TSETUPFORM.EDPATHSQLButtonClick(Sender: TObject);
begin
 if dlg.Execute then EDPATHSQL.Text:=IncludeTrailingBackslash(dlg.Path);
end;

procedure TSETUPFORM.EDPATHTEMPButtonClick(Sender: TObject);
begin
 if dlg.Execute then EDPATHTEMP.Text:=IncludeTrailingBackslash(dlg.Path);
end;

procedure TSETUPFORM.FormActivate(Sender: TObject);
begin
 caption:=pl_fl3_0000;
end;

procedure TSETUPFORM.FormCreate(Sender: TObject);
begin
 loadconf;
 EDDBSERVER.Text:=http_baseurl;
 EDDBPORT.Text:=inttostr(http_baseport);
 EDDBLOGIN.Text:=http_baselogin;
 EDDBPASSWORD.Text:=http_basepasswd;
 EDLIBSERVER.Text:=http_liburl;
 EDLIBPORT.Text:=inttostr(http_libport);
 EDLIBLOGIN.Text:=http_liblogin;
 EDLIBPASSWORD.Text:=http_libpasswd;
 EDPROXYSERVER.Text:=http_proxyurl;
 EDPROXYPORT.Text:=inttostr(http_proxyport);
 EDPROXYLOGIN.Text:=http_proxylogin;
 EDPROXYPASSWORD.Text:=http_proxypasswd;
 CBPROXYLIB.Checked:=enable_proxylib;
 CBPROXYBASE.Checked:=enable_proxybase;
 SETHREAD.Value:=http_thread;
 SETIMEOUT.Value:=http_timeout;
 SERECONNECTAFTER.Value:=http_ReconnectAfter;
 SETRYCOUNT.Value:=http_TryCount;
 SEDELAYDOWNLOAD.Value:=http_delaydownload;
 EDPATHDOWNLOAD.Text:=dlpath;
 EDPATHSQL.Text:=sqlpath;
 EDPATHTEMP.Text:=tmppath;
 CBGetDataDB.Checked:=GetDataDB;
end;

procedure TSETUPFORM.saveconf;
var
 f: TIniFile;
 i: integer;
 s: widestring;
begin
 f:=TIniFile.Create(plug_misc.INIFile);
 f.WriteBool('FomatFile','format1',CBFormatFile1.Checked);
 f.WriteBool('FomatFile','format2',CBFormatFile2.Checked);
 f.WriteBool('FomatFile','format3',CBFormatFile3.Checked);
 f.WriteBool('FomatFile','format4',CBFormatFile4.Checked);
 f.WriteBool('FomatFile','format5',CBFormatFile5.Checked);
 f.WriteBool('FomatFile','format6',CBFormatFile6.Checked);
 f.WriteBool('FomatFile','format7',CBFormatFile7.Checked);
 f.WriteBool('FomatFile','format8',CBFormatFile8.Checked);
 f.WriteBool('FomatFile','format9',CBFormatFile9.Checked);
 f.WriteString('Net','http_baseurl',addbackslash(EDDBSERVER.Text));
 if EDDBPORT.Text='' then EDDBPORT.Text:='0';
 f.WriteString('Net','http_baseport', EDDBPORT.Text);
 f.WriteString('Net','http_baselogin',EDDBLOGIN.Text);
 f.WriteString('Net','http_basepasswd',codepass(EDDBPASSWORD.Text));
 f.WriteString('Net','http_liburl',addbackslash(EDLIBSERVER.Text));
 if EDLIBPORT.Text='' then EDLIBPORT.Text:='0';
 f.WriteString('Net','http_libport', EDLIBPORT.Text);
 f.WriteString('Net','http_liblogin',EDLIBLOGIN.Text);
 f.WriteString('Net','http_libpasswd',codepass(EDLIBPASSWORD.Text));
 f.WriteBool('Net','enable_proxybase',CBPROXYBASE.Checked);
 f.WriteBool('Net','getdatadb',CBGetDataDB.Checked);
 f.WriteBool('Net','enable_proxylib',CBPROXYLIB.Checked);
 f.WriteString('Net','http_proxyurl',EDPROXYSERVER.Text);
 if EDPROXYPORT.Text='' then EDPROXYPORT.Text:='0';
 f.WriteString('Net','http_proxyport', EDPROXYPORT.Text);
 f.WriteString('Net','http_proxylogin',EDPROXYLOGIN.Text);
 f.WriteString('Net','http_proxypasswd',codepass(EDPROXYPASSWORD.Text));
 f.WriteInteger('Net','http_thread', SETHREAD.IntValue);
 f.WriteInteger('Net','http_timeout', SETIMEOUT.IntValue);
 f.WriteInteger('Net','http_TryCount', SETRYCOUNT.IntValue);
 f.WriteInteger('Net','http_ReconnectAfter', SERECONNECTAFTER.IntValue);
 f.WriteInteger('Net','http_delaydownload', SEDELAYDOWNLOAD.IntValue);
 f.WriteString('main','sqlpath',IncludeTrailingBackslash(EDPATHSQL.Text));
 f.WriteString('main','dlpath',IncludeTrailingBackslash(EDPATHDOWNLOAD.Text));
 f.WriteString('main','tmppath',IncludeTrailingBackslash(EDPATHTEMP.Text));
 f.EraseSection('BookLocation');
 for i:=0 to SLPATHLOCAL.Count- 1 do
  begin
   s:=SLPATHLOCAL.Items[i];
   if not SLPATHLOCAL.ItemChecked[i] then s:='*'+s;
   f.WriteString('BookLocation',inttostr(i+1),IncludeTrailingBackslash(s));
  end;
 f.Free;
end;

procedure TSETUPFORM.loadconf;
var
 f: TIniFile;
 l: tstringlist;
 i,n: integer;
 s,lng,path: widestring;
begin
 s:=ChangeFileExt(Application.ExeName,'.ini');
 f:=TIniFile.Create(s);
 path:=ExtractFilePath(Application.ExeName);
 lng:=f.ReadString('main','lang','Russian');
 f.Free;
 SetLang(path+lng+'.lng');
 f:=TIniFile.Create(plug_misc.INIFile);
 CBFormatFile1.Checked:=f.ReadBool('FomatFile','format1',true);
 CBFormatFile2.Checked:=f.ReadBool('FomatFile','format2',true);
 CBFormatFile3.Checked:=f.ReadBool('FomatFile','format3',true);
 CBFormatFile4.Checked:=f.ReadBool('FomatFile','format4',true);
 CBFormatFile5.Checked:=f.ReadBool('FomatFile','format5',true);
 CBFormatFile6.Checked:=f.ReadBool('FomatFile','format6',true);
 CBFormatFile7.Checked:=f.ReadBool('FomatFile','format7',true);
 CBFormatFile8.Checked:=f.ReadBool('FomatFile','format8',true);
 CBFormatFile9.Checked:=f.ReadBool('FomatFile','format9',true);
 http_liburl:=addbackslash(f.ReadString('Net','http_liburl','http://lib.rus.ec'));
 http_libport:=f.ReadInteger('Net','http_libport', 0);
 http_liblogin:=f.ReadString('Net','http_liblogin','');
 http_libpasswd:=decodepass(f.ReadString('Net','http_libpasswd',''));
 http_baseurl:=addbackslash(f.ReadString('Net','http_baseurl','http://lib.rus.ec/sql'));
 http_baseport:=f.ReadInteger('Net','http_baseport', 0);
 http_baselogin:=f.ReadString('Net','http_baselogin','');
 http_basepasswd:=decodepass(f.ReadString('Net','http_basepasswd',''));
 enable_proxybase:=(f.ReadBool('Net','enable_proxybase',false));
 GetDataDB:=(f.ReadBool('Net','getdatadb',true));
 enable_proxylib:=(f.ReadBool('Net','enable_proxylib',false));
 http_proxyurl:=(f.ReadString('Net','http_proxyurl',''));
 http_proxyport:=f.ReadInteger('Net','http_proxyport', 0);
 http_proxylogin:=f.ReadString('Net','http_proxylogin','');
 http_proxypasswd:=decodepass(f.ReadString('Net','http_proxypasswd',''));
 http_thread:=f.ReadInteger('Net','http_thread', 1);
 http_timeout:=f.ReadInteger('Net','http_timeout', 10000);
 http_TryCount:=f.ReadInteger('Net','http_TryCount', 5);
 http_ReconnectAfter:=f.ReadInteger('Net','http_ReconnectAfter', 5000);
 http_delaydownload:=f.ReadInteger('Net','http_delaydownload', 5000);
 dlpath:=IncludeTrailingBackslash(f.ReadString('main','dlpath',''));
 sqlpath:=IncludeTrailingBackslash(f.ReadString('main','sqlpath',''));
 tmppath:=IncludeTrailingBackslash(f.ReadString('main','tmppath',''));
 l:=tstringlist.Create;
 f.ReadSectionValues('BookLocation',l);
 SLPATHLOCAL.Clear;
 for i:=0 to l.Count - 1 do
  begin
   s:=l[i];
   n:=pos('=',s);
   delete(s,1,n);
   if s[1]='*'
    then
     begin
      delete(s,1,1);
      SLPATHLOCAL.Add(IncludeTrailingBackslash(s));
     end
    else
     begin
      SLPATHLOCAL.Add(IncludeTrailingBackslash(s));
      SLPATHLOCAL.ItemChecked[SLPATHLOCAL.Count-1]:=true;
     end;
  end;
 l.Free;
 f.Free;
end;

procedure TSETUPFORM.BTAddClick(Sender: TObject);
begin
 if dlg.Execute
  then
   begin
    SLPATHLOCAL.Add(IncludeTrailingBackslash(dlg.Path));
    SLPATHLOCAL.ItemChecked[SLPATHLOCAL.Count-1]:=true;
   end;
end;

procedure TSETUPFORM.BTDeleteClick(Sender: TObject);
begin
 if SLPATHLOCAL.ItemIndex>=0
  then SLPATHLOCAL.Delete(SLPATHLOCAL.ItemIndex);
end;

procedure TSETUPFORM.BTOKClick(Sender: TObject);
begin
 saveconf;
 ModalResult:=mrOk;
end;

procedure TSETUPFORM.SetLang(lng:string);
var
 f: TMemIniFile;
 cp: word;
begin
 f:=TMemIniFile.Create(lng,TEncoding.GetEncoding(1251));
 cp:=f.ReadInteger('Custom Resource Strings','codepage',1251);
 f.free;
 f:=TMemIniFile.Create(lng,TEncoding.GetEncoding(cp));
 pl_fl3_0000:=f.ReadString('Custom Resource Strings','pl_fl3_0000','Настройки библиотеки');
 pl_fl3_0001:=f.ReadString('Custom Resource Strings','pl_fl3_0001','Сеть');
 pl_fl3_0002:=f.ReadString('Custom Resource Strings','pl_fl3_0002','Папки');
 pl_fl3_0003:=f.ReadString('Custom Resource Strings','pl_fl3_0003','Поддерживаемые форматы имен файлов');
 pl_fl3_0004:=f.ReadString('Custom Resource Strings','pl_fl3_0004','ОК');
 pl_fl3_0005:=f.ReadString('Custom Resource Strings','pl_fl3_0005','Отмена');
 pl_fl3_0006:=f.ReadString('Custom Resource Strings','pl_fl3_0006','База книг');
 pl_fl3_0007:=f.ReadString('Custom Resource Strings','pl_fl3_0007','Библиотека');
 pl_fl3_0008:=f.ReadString('Custom Resource Strings','pl_fl3_0008','Прокси');
 pl_fl3_0009:=f.ReadString('Custom Resource Strings','pl_fl3_0009','Параметры закачки');
 pl_fl3_0010:=f.ReadString('Custom Resource Strings','pl_fl3_0010','Запрашивать дату файлов базы данных на сервере');
 pl_fl3_0011:=f.ReadString('Custom Resource Strings','pl_fl3_0011','Сервер');
 pl_fl3_0012:=f.ReadString('Custom Resource Strings','pl_fl3_0012','Порт');
 pl_fl3_0013:=f.ReadString('Custom Resource Strings','pl_fl3_0013','Логин');
 pl_fl3_0014:=f.ReadString('Custom Resource Strings','pl_fl3_0014','Пароль');
 pl_fl3_0015:=f.ReadString('Custom Resource Strings','pl_fl3_0015','Использовать прокси');
 pl_fl3_0016:=f.ReadString('Custom Resource Strings','pl_fl3_0016','Потоков');
 pl_fl3_0017:=f.ReadString('Custom Resource Strings','pl_fl3_0017','Таймаут (мс)');
 pl_fl3_0018:=f.ReadString('Custom Resource Strings','pl_fl3_0018','Пауза между попытками (мс)');
 pl_fl3_0019:=f.ReadString('Custom Resource Strings','pl_fl3_0019','Количество попыток');
 pl_fl3_0020:=f.ReadString('Custom Resource Strings','pl_fl3_0020','Пауза между закачками книг (мс)');
 pl_fl3_0021:=f.ReadString('Custom Resource Strings','pl_fl3_0021','Путь к архивам локальной коллекции');
 pl_fl3_0022:=f.ReadString('Custom Resource Strings','pl_fl3_0022','Размещение скачиваемых файлов библиотеки');
 pl_fl3_0023:=f.ReadString('Custom Resource Strings','pl_fl3_0023','Размещение исходных файлов базы');
 pl_fl3_0024:=f.ReadString('Custom Resource Strings','pl_fl3_0024','Папка для временных файлов');
 pl_fl3_0025:=f.ReadString('Custom Resource Strings','pl_fl3_0025','Добавить');
 pl_fl3_0026:=f.ReadString('Custom Resource Strings','pl_fl3_0026','Удалить');
 pl_fl3_0027:=f.ReadString('Custom Resource Strings','pl_fl3_0027','ID книги с любым расширением (bookid.*)');
 pl_fl3_0028:=f.ReadString('Custom Resource Strings','pl_fl3_0028','ID книги в начале файла, отделенный пробелом (bookid *.*)');
 pl_fl3_0029:=f.ReadString('Custom Resource Strings','pl_fl3_0029','ID книги, ограниченный "." в любом месте имени файла (*.bookid.*)');
 pl_fl3_0030:=f.ReadString('Custom Resource Strings','pl_fl3_0030','Имя файла из базы с любым расширением (filename.*)');
 pl_fl3_0031:=f.ReadString('Custom Resource Strings','pl_fl3_0031','Имя файла из базы (полное совпадение)');
 pl_fl3_0032:=f.ReadString('Custom Resource Strings','pl_fl3_0032','MD5 в начале имени файла (md5*)');
 pl_fl3_0033:=f.ReadString('Custom Resource Strings','pl_fl3_0033','Укороченный MD5 (cutMD5.*)');
 pl_fl3_0034:=f.ReadString('Custom Resource Strings','pl_fl3_0034','Фиксированная структура библиотеки (\xx\yy\MD5.zip)');
 pl_fl3_0035:=f.ReadString('Custom Resource Strings','pl_fl3_0035','Архивы-тысячники  (*xxxxxxxx-yyyyyyyy.zip)');
 pl_fl3_0036:=f.ReadString('Custom Resource Strings','pl_fl3_0036','Если не знаете, какие форматы файлов у Вас на диске, установите все отметки.');
 pl_fl3_0037:=f.ReadString('Custom Resource Strings','pl_fl3_0037','Чем больше форматов будет отмечено, тем больше времени понадобится программе для нахождения файла книги.');
 pl_fl3_0038:=f.ReadString('Custom Resource Strings','pl_fl3_0038','Текущая папка');
 pl_fl3_0039:=f.ReadString('Custom Resource Strings','pl_fl3_0039','Путь к папке');
 f.Free;

 TSNet.Caption:=pl_fl3_0001;
 TSDir.Caption:=pl_fl3_0002;
 TSFormat.Caption:=pl_fl3_0003;
 BTOK.Caption:=pl_fl3_0004;
 BTCANCEL.Caption:=pl_fl3_0005;
 GBBase.Caption:=' '+pl_fl3_0006+' ';
 GBLib.Caption:=' '+pl_fl3_0007+' ';
 GBProxy.Caption:=' '+pl_fl3_0008+' ';
 GBParam.Caption:=' '+pl_fl3_0009+' ';
 LBBaseServer.Caption:=pl_fl3_0011;
 LBBasePort.Caption:=pl_fl3_0012;
 LBBaseLgin.Caption:=pl_fl3_0013;
 LBBasePassword.Caption:=pl_fl3_0014;
 CBPROXYBASE.Caption:=pl_fl3_0015;
 LBLibServer.Caption:=pl_fl3_0011;
 LBLibPort.Caption:=pl_fl3_0012;
 LBLibLogin.Caption:=pl_fl3_0013;
 LBLibPassword.Caption:=pl_fl3_0014;
 CBPROXYLIB.Caption:=pl_fl3_0015;
 LBProxyServer.Caption:=pl_fl3_0011;
 LBProxyPort.Caption:=pl_fl3_0012;
 LBProxyLogin.Caption:=pl_fl3_0013;
 LBProxyPassword.Caption:=pl_fl3_0014;
 CBGetDataDB.Caption:=pl_fl3_0010;
 LBThread.Caption:=pl_fl3_0016;
 LBTimeout.Caption:=pl_fl3_0017;
 LBReconnectAfter.Caption:=pl_fl3_0018;
 LBTryCount.Caption:=pl_fl3_0019;
 LBDelayDownload.Caption:=pl_fl3_0020;
 GBPathLoacal.Caption:=' '+pl_fl3_0021+' ';
 LBPathDownload.Caption:=pl_fl3_0022;
 LBPathSQL.Caption:=pl_fl3_0023;
 LBPathTemp.Caption:=pl_fl3_0024;
 BTAdd.Caption:=pl_fl3_0025;
 BTDelete.Caption:=pl_fl3_0026;
 CBFormatFile1.Caption:=pl_fl3_0027;
 CBFormatFile2.Caption:=pl_fl3_0028;
 CBFormatFile3.Caption:=pl_fl3_0029;
 CBFormatFile4.Caption:=pl_fl3_0030;
 CBFormatFile5.Caption:=pl_fl3_0031;
 CBFormatFile6.Caption:=pl_fl3_0032;
 CBFormatFile7.Caption:=pl_fl3_0033;
 CBFormatFile8.Caption:=pl_fl3_0034;
 CBFormatFile9.Caption:=pl_fl3_0035;
 LBFormatTitle1.Caption:=pl_fl3_0036;
 LBFormatTitle2.Caption:=pl_fl3_0037;
 DLG.FolderLabelCaption:=pl_fl3_0038;
 DLG.Title:=pl_fl3_0039;

end;

end.



