unit fOptionsNewList;

interface

uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls, Dialogs,
  Buttons, ComCtrls, ExtCtrls, OrFn, ORCtrls, fBase508Form,
  VA508AccessibilityManager;

type
  TfrmOptionsNewList = class(TfrmBase508Form)
    pnlBottom: TPanel;
    btnOK: TButton;
    btnCancel: TButton;
    txtNewList: TCaptionEdit;
    lblEnter: TLabel;
    lblNew: TLabel;
    Label1: TLabel;
    grpVisibility: TRadioGroup;
    procedure btnOKClick(Sender: TObject);
    procedure txtNewListKeyPress(Sender: TObject; var Key: Char);
    procedure txtNewListChange(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
    FNewList: string;
  public
    { Public declarations }
  end;

procedure DialogOptionsNewList(fontsize: integer; var actiontype: string);

var
  frmOptionsNewList: TfrmOptionsNewList;

implementation

uses rOptions, VAUtils;

{$R *.DFM}

procedure DialogOptionsNewList(fontsize: integer; var actiontype: string);
// create the form and make it modal, return an action
var
  frmOptionsNewList: TfrmOptionsNewList;
begin
  frmOptionsNewList := TfrmOptionsNewList.Create(Application);
  actiontype := '';
  try
    with frmOptionsNewList do
    begin
      Position := poScreenCenter;
      ResizeAnchoredFormToFont(frmOptionsNewList);
      ShowModal;
      actiontype := FNewList;
    end;
  finally
    frmOptionsNewList.Release;
  end;
end;

procedure TfrmOptionsNewList.btnOKClick(Sender: TObject);
var
  ok: boolean;
begin
  ok := false;
  with txtNewList do
  begin
    if (length(Text) < 3) or (length(Text) > 30) then
      ShowMsg('Enter a valid name.')
    else if not ContainsAlpha(txtNewList.Text[1]) then
      ShowMsg('Enter a valid name.')
    else
    begin
      FNewList := rpcNewList(Text, grpVisibility.ItemIndex);
      if Piece(FNewList, '^', 1) = '' then
        ShowMsg('Enter a valid name. ' + Piece(FNewList, '^', 2))
      else
        ok := true;
    end;
    if ok then Close
    else
    begin
      Text := '';
      SetFocus;
    end;
  end;
end;

procedure TfrmOptionsNewList.txtNewListKeyPress(Sender: TObject;
  var Key: Char);
begin
  if not (Key in ['A'..'Z', 'a'..'z', '0'..'9', #32, #8]) then
  begin
    Key := #0;
    beep;
  end;
end;

procedure TfrmOptionsNewList.FormCreate(Sender: TObject);
begin
  inherited;
  grpVisibility.ItemIndex := 0;
  txtNewList.Text := '';
end;

procedure TfrmOptionsNewList.txtNewListChange(Sender: TObject);
begin
  btnOK.Enabled := length(txtNewList.Text) > 3;
end;

end.

