unit ufSettings;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ExtCtrls, StdCtrls, Buttons, FileCtrl,
  uProc;

type
  TfSettings = class(TForm)
    Bevel1: TBevel;
    Label1: TLabel;
    lbDir: TListBox;
    Panel1: TPanel;
    BitBtn1: TBitBtn;
    bbAdd: TBitBtn;
    bbDel: TBitBtn;
    Panel2: TPanel;
    edDir: TEdit;
    procedure FormCreate(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure bbAddClick(Sender: TObject);
    procedure bbDelClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  fSettings: TfSettings;

implementation

{$R *.DFM}

procedure TfSettings.FormCreate(Sender: TObject);
var
  Counter,index: Integer;
  s: String;
begin
  edDir.Align := alClient;
  s := GetParm('Directories','CountDir');
  if s='' then
  begin
    s := '0';
    WriteParm('Directories','CountDir',s);
  end;

  Counter := StrToInt(s);
  for index := 1 to Counter do
  begin
    s := GetParm('Directories','DIR'+IntToStr(index));
    {$IFDEF VER130}
      s := ExcludeTrailingBackSlash(s);
    {$ELSE}
      if s[Length(s)]='\' then Delete(s,Length(s));
    {$ENDIF}
    lbDir.Items.Add(s);
  end;
  lbDir.ItemIndex := 0;
end;

procedure TfSettings.BitBtn1Click(Sender: TObject);
var
  index: Integer;
begin
//  for index := 0 to lbDir.Items.Count-1 do
//  begin
//    WriteParm('Directories','DIR'+IntToStr(index+1),lbDir.Items[index]);
//  end;
//  WriteParm('Directories','CountDir',IntToStr(lbDir.Items.Count));
end;

procedure TfSettings.bbAddClick(Sender: TObject);
var
  s: String;
begin
  try
    {$IFDEF VER130}
      s := ExcludeTrailingBackSlash(edDir.Text);
    {$ELSE}
      if s[Length(s)]='\' then Delete(s,Length(s));
    {$ENDIF}
    if DirectoryExists(s) then lbDir.Items.Add(s);
    WriteParm('Directories','DIR'+IntToStr(lbDir.Items.Count),lbDir.Items[lbDir.Items.Count-1]);
    WriteParm('Directories','CountDir',IntToStr(lbDir.Items.Count));
  except
  end;
end;

procedure TfSettings.bbDelClick(Sender: TObject);
var
  index: Integer;
begin
  if lbDir.ItemIndex>=0 then
  begin
    DeleteParm('Directories','DIR'+IntToStr(lbDir.ItemIndex+1));
    lbDir.Items.Delete(lbDir.ItemIndex);
    for index := 0 to lbDir.Items.Count do
          DeleteParm('Directories','DIR'+IntToStr(index+1));
    for index := 0 to lbDir.Items.Count-1 do
          WriteParm('Directories','DIR'+IntToStr(index+1),lbDir.Items[index]);
  end;
  WriteParm('Directories','CountDir',IntToStr(lbDir.Items.Count));
end;

end.
