unit intercapPrinc;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus, StdCtrls, shellApi, Clipbrd, ExtCtrls, Buttons;

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    MainMenu1: TMainMenu;
    Arquivo1: TMenuItem;
    Editar1: TMenuItem;
    Visualizar1: TMenuItem;
    ajuda1: TMenuItem;
    Novo1: TMenuItem;
    Salvar1: TMenuItem;
    SalvarComo1: TMenuItem;
    Terminar: TMenuItem;
    Copiar1: TMenuItem;
    Colar1: TMenuItem;
    Inserir1: TMenuItem;
    Elo1: TMenuItem;
    Figura1: TMenuItem;
    Abrir1: TMenuItem;
    Separador1: TMenuItem;
    HTML1: TMenuItem;
    amanho1: TMenuItem;
    Negrito1: TMenuItem;
    Itlico1: TMenuItem;
    Programa1: TMenuItem;
    Centralizado1: TMenuItem;
    H1Grande1: TMenuItem;
    H21: TMenuItem;
    H31: TMenuItem;
    H41: TMenuItem;
    H51: TMenuItem;
    H6Micro1: TMenuItem;
    Cabecalho1: TMenuItem;
    OpenDialog1: TOpenDialog;
    SaveDialog1: TSaveDialog;
    Cortar1: TMenuItem;
    Rotuloparaacesso1: TMenuItem;
    Criarnovapastadepublicao1: TMenuItem;
    GerarHTML1: TMenuItem;
    Desfazer1: TMenuItem;
    FontDialog1: TFontDialog;
    GeraHTML1: TMenuItem;
    DirAtual1: TMenuItem;
    Configurar1: TMenuItem;
    Ajuda2: TMenuItem;
    Sobreesteprograma1: TMenuItem;
    N1: TMenuItem;
    N2: TMenuItem;
    Localizar1: TMenuItem;
    FindDialog1: TFindDialog;
    Panel1: TPanel;
    SpeedButton1: TSpeedButton;
    OpenButton: TSpeedButton;
    saveButton: TSpeedButton;
    ConfigBtn: TSpeedButton;
    Regenerartudo1: TMenuItem;
    lb_arqpag: TListBox;
    negBtn: TSpeedButton;
    CutBtn: TSpeedButton;
    CopyBtn: TSpeedButton;
    PasteBtn: TSpeedButton;
    genvisBtn: TSpeedButton;
    Titulo1: TMenuItem;
    itaBtn: TSpeedButton;
    Prog1: TSpeedButton;
    SpeedButton3: TSpeedButton;
    TituloBtn: TSpeedButton;
    sublBtn: TSpeedButton;
    Sublinhado1: TMenuItem;
    Reabrir1: TMenuItem;
    N11: TMenuItem;
    N21: TMenuItem;
    N31: TMenuItem;
    N41: TMenuItem;
    N51: TMenuItem;
    Splitter1: TSplitter;
    procedure Novo1Click(Sender: TObject);
    procedure Abrir1Click(Sender: TObject);
    procedure Cabecalho1Click(Sender: TObject);
    procedure Salvar1Click(Sender: TObject);
    procedure SalvarComo1Click(Sender: TObject);
    procedure TerminarClick(Sender: TObject);
    procedure Copiar1Click(Sender: TObject);
    procedure Cortar1Click(Sender: TObject);
    procedure Colar1Click(Sender: TObject);
    procedure Elo1Click(Sender: TObject);
    procedure Separador1Click(Sender: TObject);
    procedure Figura1Click(Sender: TObject);
    procedure Rotuloparaacesso1Click(Sender: TObject);
    procedure escolherPastaBase1Click(Sender: TObject);
    procedure Visualizar1Click(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure GerarHTML1Click(Sender: TObject);
    procedure H1Grande1Click(Sender: TObject);
    procedure H21Click(Sender: TObject);
    procedure H31Click(Sender: TObject);
    procedure H41Click(Sender: TObject);
    procedure H51Click(Sender: TObject);
    procedure H6Micro1Click(Sender: TObject);
    procedure Negrito1Click(Sender: TObject);
    procedure Itlico1Click(Sender: TObject);
    procedure Sublinhado1Click(Sender: TObject);
    procedure Programa1Click(Sender: TObject);
    procedure Titulo1Click(Sender: TObject);
    procedure Centralizado1Click(Sender: TObject);
    procedure Desfazer1Click(Sender: TObject);
    procedure DirAtual1Click(Sender: TObject);
    procedure Configurar1Click(Sender: TObject);
    procedure Ajuda2Click(Sender: TObject);
    procedure Sobreesteprograma1Click(Sender: TObject);
    procedure Localizar1Click(Sender: TObject);
    procedure FindDialog1Find(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure OpenButtonClick(Sender: TObject);
    procedure genvisBtnClick(Sender: TObject);
    procedure ConfigBtnClick(Sender: TObject);
    procedure Regenerartudo1Click(Sender: TObject);
    procedure lb_arqpagClick(Sender: TObject);
    procedure saveButtonClick(Sender: TObject);
    procedure negBtnClick(Sender: TObject);
    procedure itaBtnClick(Sender: TObject);
    procedure Prog1Click(Sender: TObject);
    procedure SpeedButton3Click(Sender: TObject);
    procedure TituloBtnClick(Sender: TObject);
    procedure sublBtnClick(Sender: TObject);
    procedure N11Click(Sender: TObject);
    procedure N21Click(Sender: TObject);
    procedure N31Click(Sender: TObject);
    procedure N41Click(Sender: TObject);
    procedure N51Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure CriaMenuReabrir1Click(Sender: TObject);
  private
    { Private declarations }
    procedure insertMemo (s: string);
    procedure trocaPastaAtual (nome: string);
    procedure lbArqRefresh (nomeFoco: string);
    procedure Reabrir(novoDir: string);

  public
    { Public declarations }
  end;

var
    Form1: TForm1;

implementation

uses uvars, ucabecalho, uelo, ufigura, ugeraHtml, uabout, uconf, ubasico, udir;

const CRLF = #$0d + #$0a;

{$R *.dfm}

procedure TForm1.Novo1Click(Sender: TObject);
begin
  if not memo1.Modified then
      memo1.clear
  else
     if MessageDlg('Confirmando apagamento geral',
        mtConfirmation, [mbYes, mbNo], 0) = mrYes then
           memo1.Clear;
  nomeArq := '';
  nomeArqHTML := '';
  form1.Caption := 'InterCap';
  lb_arqpag.ItemIndex := -1;
end;

procedure TForm1.Abrir1Click(Sender: TObject);
begin
    if memo1.Modified then
       if MessageDlg('Texto foi alterado, carrega outro sem salvar?',
          mtConfirmation, [mbYes, mbNo], 0) = mrNo then
              exit;

    if not OpenDialog1.execute then                                     
        exit;

    memo1.Clear;
    nomeArq := OpenDialog1.FileName;
    memo1.lines.loadfromfile (nomeArq);
    Caption := 'InterCAP ' + nomeArq;
    nomeArqHTML := '';
    lbArqRefresh (nomeArq);
end;

procedure TForm1.Salvar1Click(Sender: TObject);
begin
    if nomeArq = '' then
        salvarComo1Click (Sender)
    else
        memo1.Lines.SaveToFile(nomeArq);
    memo1.Modified := false;
end;

procedure TForm1.SalvarComo1Click(Sender: TObject);
begin
    if SaveDialog1.execute then
        begin
           nomeArq := SaveDialog1.FileName;
           if pos ('.', nomeArq) = 0 then
               nomeArq := nomeArq + '.pag';
           if nomeArq <> '' then
               begin
                   memo1.Lines.SaveToFile(nomeArq);
                   memo1.Modified := false;
                   Caption := 'InterCAP ' + nomeArq;
               end;
            lbArqRefresh (nomeArq);
        end;
end;

procedure TForm1.TerminarClick(Sender: TObject);
begin
  if memo1.Modified then
     if MessageDlg('Texto foi alterado, sai sem salvar?',
        mtConfirmation, [mbYes, mbNo], 0) <> mrYes then
          exit;
  close;
end;

procedure TForm1.Copiar1Click(Sender: TObject);
begin
   memo1.CopyToClipboard;
end;

procedure TForm1.Cortar1Click(Sender: TObject);
begin
   memo1.CutToClipboard;
end;

procedure TForm1.Colar1Click(Sender: TObject);
begin
   memo1.PasteFromClipboard;
end;

procedure TForm1.Cabecalho1Click(Sender: TObject);
begin
    OKCabecalhoDlg.showModal;
    if OKCabecalhoDlg.ok then
        begin
            memo1.Lines.Insert(0, 'TÍTULO: ' + OKCabecalhoDlg.e_titulo.text);
            memo1.Lines.Insert(1, 'CABEÇALHO: ' + OKCabecalhoDlg.e_cabec.text);
            memo1.Lines.Insert(2, 'AUTOR: ' + OKCabecalhoDlg.e_autor.text);
            memo1.Lines.Insert(3, 'EMAIL: ' + OKCabecalhoDlg.e_email.text);
            memo1.Lines.Insert(4, 'LOGOTIPO: ' + OKCabecalhoDlg.e_logotipo.text);
            memo1.Lines.Insert(5, 'MODELO: ' + OKCabecalhoDlg.e_modelo.text);
            memo1.Lines.Insert (6, '');
        end;
end;

procedure TForm1.Elo1Click(Sender: TObject);
begin
    OKEloDlg.showModal;
    if OKEloDlg.ok then
        begin
            clipboard.Clear;
            clipboard.asText := CRLF + '{' + OKEloDlg.e_referencia.text + ' ' +
                              OKEloDlg.e_texto.text + '}' + CRLF;
            memo1.PasteFromClipboard;
            clipboard.Clear;
        end;
end;

procedure TForm1.Separador1Click(Sender: TObject);
begin
    clipboard.Clear;
    clipboard.asText := CRLF + '-----------------------------------' + CRLF;
    memo1.PasteFromClipboard;
    clipboard.Clear;
end;

procedure TForm1.Figura1Click(Sender: TObject);
begin
    OKFiguraDlg.showModal;
    if OKFiguraDlg.ok then
        begin
            clipboard.Clear;
            clipboard.asText := CRLF + '$' + OKFiguraDlg.e_nomeFig.text + ' ' +
                              OKFiguraDlg.e_comentFig.text + '$' + CRLF;
            memo1.PasteFromClipboard;
            clipboard.Clear;
        end;
end;

procedure TForm1.Rotuloparaacesso1Click(Sender: TObject);
var nome: string;
begin
   nome := '';
   if inputQuery('Nome do rótulo', 'Como se chama esta posição?', nome) then
       begin
            clipboard.Clear;
            clipboard.asText := CRLF + '#'+nome + CRLF;
            memo1.PasteFromClipboard;
            clipboard.Clear;
       end;
end;

procedure copiaArquivosBasicos (dirModelo, dirDestino: string);
var nome, nome2: string;
    dosError: integer;
    f: TSearchRec;
    dirSalva: string;
begin
    getDir (0, dirSalva);

    {$I-} chdir (dirModelo);  {$I+}
    if ioresult <> 0 then
        showMessage ('Site modelo não existe, modelo padrão assumido')
    else
        begin
            dosError := findFirst ('*.*', faArchive, f);
            while dosError = 0 do
                begin
                    nome := dirModelo + '\' + f.FindData.cFileName;
                    nome2 := dirDestino + '\' + f.FindData.cFileName;
                    copyFile (@nome[1], @nome2[1], false);
                    dosError := findNext (f);
                end;
        end;

    chdir (dirSalva);
end;

procedure registraUltDir (dirAtual: string);
var i, j: integer;
begin
	for i := 1 to 5 do
        begin
            if dirAtual = ultimosDir [i] then
                begin
                    for j := i to 4 do
                        ultimosDir [j] := ultimosDir [j+1];
                    ultimosDir [5] := '';
                end;
        end;

    if (dirAtual <> '') and (dirAtual <> ultimosDir [1]) then
       begin
           for i := 5 downto 2 do
               ultimosDir [i] := ultimosDir [i-1];
           ultimosDir [1] := dirAtual;
           for i := 1 to 5 do
               writePrivateProfileString ('INTERCAP',
                 pchar('arq'+intToStr(i)), pchar(ultimosDir[i]), 'intercap.ini');
       end;
end;


procedure TForm1.trocaPastaAtual (nome: string);
begin
    dirAtual := nome;
    {$i-}  chdir (dirAtual);  {$I+}    // evita situações de inacessibilidade
    if ioresult <> 0 then
        begin
            showMessage ('Pasta de trabalho ' + diratual + ' está inacessível');
            exit;
        end;

    memo1.clear;
    Caption := 'InterCAP';
    nomeArqHTML := '';

    OpenDialog1.InitialDir := nome;
    saveDialog1.InitialDir := nome;
    lbArqRefresh(nome);

    registraUltDir (dirAtual);

    carregaConfigs;
    form_conf.showModal;
end;

function DirectoryIsEmpty(Directory: string): Boolean;
var
  SR: TSearchRec;
  i: Integer;
begin
  Result := False;
  FindFirst(IncludeTrailingPathDelimiter(Directory) + '*', faAnyFile, SR);
  for i := 1 to 2 do
    if (SR.Name = '.') or (SR.Name = '..') then
      Result := FindNext(SR) <> 0;
  FindClose(SR);
end;

procedure TForm1.escolherPastaBase1Click(Sender: TObject);
var nomeDir: string;
begin
    nomeDir := escolhePastaBase (dirAtual);
    if nomeDir = '' then
        exit;

    {$I-} chdir (nomeDir);  {$I+}
    if (IOResult <> 0) then
        begin
            if MessageDlg('Confirmando criação da pasta ' + nomeDir,
               mtConfirmation, [mbYes, mbNo], 0) = mrYes then
                begin
                  {$I-} mkdir (nomeDir);  {$I+}
                  if ioresult <> 0 then
                      begin
                         showMessage ('Pasta não pode ser criada');
                         exit;
                      end;
                end;
        end;

    if DirectoryIsEmpty(nomeDir) then
        begin
            copiaArquivosBasicos (dirProg + '\homepage', nomeDir);
            carregaConfigs;                                                 
            nomeModeloDefault := 'modelo.mdl';
            logotipoPadrao := 'logotipo.gif';
            salvaConfigs;
        end;

    trocaPastaAtual (nomeDir);
end;

procedure TForm1.Visualizar1Click(Sender: TObject);
begin
    if nomeArq = '' then
        begin
            showMessage ('Salve o arquivo antes de visualizar pela primeira vez');
            exit;
        end;

    if memo1.Modified then
        begin
            memo1.Lines.SaveToFile(nomeArq);
            memo1.Modified := false;
        end;

    if upperCase (copy (nomearq, length(nomearq)-3, 4)) = '.PAG' then
        begin
            GerarHTML1Click(Sender);
            ShellExecute(0, 'open', @nomeArqHTML[1], NIL, NIL, SW_SHOW);
        end
    else
        ShellExecute(0, 'open', @nomeArq[1], NIL, NIL, SW_SHOW);
end;

procedure TForm1.lbArqRefresh (nomeFoco: string);
var sr: TSearchRec;
    i: integer;
begin
    if not DirectoryExists (nomeFoco) then
        begin
            i := lastDelimiter('\', nomeFoco);
            nomeFoco := copy (nomeFoco, i+1, 999);
        end;

    lb_arqpag.Clear;
    if findfirst('*.pag', faAnyFile, sr) = 0 then
        repeat
            lb_arqpag.Items.add (sr.FindData.cFileName);
            if sr.FindData.cFileName = nomeFoco then
                lb_arqPag.itemIndex := lb_arqPag.count-1;
        until FindNext(sr) <> 0;
end;

procedure TForm1.FormActivate(Sender: TObject);
begin
    trocaPastaAtual(dirAtual);
    carregaConfigs;

    OpenDialog1.InitialDir := dirAtual;

    lbArqRefresh ('');
end;

procedure TForm1.GerarHTML1Click(Sender: TObject);
begin
    if nomeArq = '' then
        begin
            showMessage ('Salve o arquivo antes de visualizar pela primeira vez');
            exit;
        end;

    if memo1.Modified then
        memo1.Lines.SaveToFile(nomeArq);

    if copy (AnsiUpperCase (nomeArq), length(nomeArq)-3, 4) = '.PAG' then
         nomeArqHTML := copy (nomeArq, 1, length(nomeArq)-4) + '.htm'
    else
         nomeArqHTML := nomeArq + '.htm';
    geraHtml(nomeArq, nomeArqHTML, nomeModeloDefault);
end;

procedure TForm1.insertMemo (s: string);
var cb: string;
begin
    clipboard.clear;
    memo1.CopyToClipboard;
    cb := clipboard.asText;
    memo1.ClearSelection;
    cb := '<' + s + '>' + cb + '</' + s + '>';
    clipboard.AsText := cb;
    memo1.PasteFromClipboard;
end;

procedure TForm1.H1Grande1Click(Sender: TObject);
begin
    insertMemo ('h1');
end;

procedure TForm1.H21Click(Sender: TObject);
begin
    insertMemo ('h2');
end;

procedure TForm1.H31Click(Sender: TObject);
begin
    insertMemo ('h3');
end;

procedure TForm1.H41Click(Sender: TObject);
begin
    insertMemo ('h4');
end;

procedure TForm1.H51Click(Sender: TObject);
begin
    insertMemo ('h5');
end;

procedure TForm1.H6Micro1Click(Sender: TObject);
begin
    insertMemo ('h6');
end;

procedure TForm1.Negrito1Click(Sender: TObject);
begin
    insertMemo ('b');
end;

procedure TForm1.Itlico1Click(Sender: TObject);
begin
    insertMemo ('i');
end;

procedure TForm1.Sublinhado1Click(Sender: TObject);
begin
    insertMemo ('u');
end;

procedure TForm1.Programa1Click(Sender: TObject);
begin
    insertMemo ('pre');
end;

procedure TForm1.Centralizado1Click(Sender: TObject);
begin
    insertMemo ('center');
end;

procedure TForm1.Titulo1Click(Sender: TObject);
begin
    clipboard.clear;
    clipboard.AsText := '*';
    memo1.PasteFromClipboard;
end;

procedure TForm1.Desfazer1Click(Sender: TObject);
begin
    memo1.Undo;
end;

procedure TForm1.DirAtual1Click(Sender: TObject);
begin
    ShellExecute(0, 'open', 'explorer', @dirAtual[1], NIL, SW_SHOW);
end;

procedure TForm1.Configurar1Click(Sender: TObject);
begin
    form_conf.showModal;
end;

procedure TForm1.Ajuda2Click(Sender: TObject);
begin
    ShellExecute(0, 'open', @nomeArqAjuda[1], NIL, NIL, SW_SHOW);
end;

procedure TForm1.Sobreesteprograma1Click(Sender: TObject);
begin
    AboutBox.ShowModal;
end;

procedure TForm1.Localizar1Click(Sender: TObject);
begin
    FindDialog1.Execute;
end;

procedure TForm1.FindDialog1Find(Sender: TObject);
var n, ini: integer;
    buscado: string;
    compIdentico: boolean;
    txt: string;

begin
   compIdentico := frMatchCase in findDialog1.Options;
   buscado := findDialog1.findText;
   ini := memo1.SelStart + memo1.SelLength;
   if ini = 0 then ini := 1;
   txt := copy (memo1.Text, ini, 65000);
   if not compIdentico then
       begin
          txt := AnsiUpperCase(txt);
          buscado := AnsiUpperCase(buscado);
       end;
   n := pos (buscado, txt);
   if n >= 1 then
      begin
         Memo1.SetFocus;
         Memo1.SelStart := n+ini-2;
         Memo1.SelLength := Length(buscado);
         txt := '';
      end
   else
      MessageDlg ('Busca terminada', mtInformation, [mbOk], 0);
end;

procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
    novo1Click (sender);
end;

procedure TForm1.OpenButtonClick(Sender: TObject);
begin
    Abrir1Click(Sender);
end;

procedure TForm1.saveButtonClick(Sender: TObject);
begin
    Salvar1Click(Sender);
end;

procedure TForm1.genvisBtnClick(Sender: TObject);
begin
    Visualizar1Click(Sender);
end;

procedure TForm1.ConfigBtnClick(Sender: TObject);
begin
    Configurar1Click(Sender);
end;

procedure TForm1.Regenerartudo1Click(Sender: TObject);
var sr: TSearchRec;
    nomeArq, nomeArqHtml: string;
    numArq: integer;
    oldCursor: TCursor;
begin
    numArq := 0;
    oldCursor := Screen.Cursor;
    if findfirst('*.pag', faAnyFile, sr) = 0 then
        repeat
            nomeArq := sr.FindData.cFileName;
            nomeArqHtml := copy (nomeArq, 1, length(nomeArq)-4) + '.htm';
            geraHtml(nomeArq, nomeArqHTML, nomeModeloDefault);
            numArq := numArq + 1;
        until FindNext(sr) <> 0;
    Screen.Cursor := oldCursor;
    showMessage ('Arquivos gerados: ' + intToStr(numArq));
end;

procedure TForm1.lb_arqpagClick(Sender: TObject);
begin
    if memo1.Modified then
       if MessageDlg('Texto foi alterado, carrega outro sem salvar?',
          mtConfirmation, [mbYes, mbNo], 0) = mrNo then
            exit;

    chdir (dirAtual);
    memo1.Clear;
    nomeArq := lb_arqpag.Items[lb_arqpag.itemIndex];
    memo1.lines.loadfromfile (nomeArq);
    Caption := 'InterCAP ' + nomeArq;
    nomeArqHTML := '';
    lbArqRefresh (nomeArq);
end;

procedure TForm1.negBtnClick(Sender: TObject);
begin
    Negrito1Click(Sender);
end;

procedure TForm1.itaBtnClick(Sender: TObject);
begin
    Itlico1Click(Sender);
end;

procedure TForm1.Prog1Click(Sender: TObject);
begin
    Programa1Click(Sender);
end;

procedure TForm1.SpeedButton3Click(Sender: TObject);
begin
    Centralizado1Click(Sender);
end;

procedure TForm1.TituloBtnClick(Sender: TObject);
begin
    Titulo1Click(Sender);
end;

procedure TForm1.sublBtnClick(Sender: TObject);
begin
    Sublinhado1Click(Sender);
end;

procedure TForm1.Reabrir(novoDir: string);
begin
    if memo1.Modified then
       if MessageDlg('Texto foi alterado, carrega outro sem salvar?',
          mtConfirmation, [mbYes, mbNo], 0) = mrNo then
              exit;

    if DirectoryExists(novoDir) then
        trocaPastaAtual (novoDir)
    else
        showMessage ('Diretório não existe');
end;

procedure TForm1.N11Click(Sender: TObject);
begin
   reabrir (ultimosDir[1]);
end;

procedure TForm1.N21Click(Sender: TObject);
begin
   reabrir (ultimosDir[2]);
end;

procedure TForm1.N31Click(Sender: TObject);
begin
   reabrir (ultimosDir[3]);
end;

procedure TForm1.N41Click(Sender: TObject);
begin
   reabrir (ultimosDir[4]);
end;

procedure TForm1.N51Click(Sender: TObject);
begin
   reabrir (ultimosDir[5]);
end;

procedure TForm1.FormCreate(Sender: TObject);
var
    valor, def: array [0..255] of char;
    p: array [0..255] of char;
begin
    getDir (0, dirProg);
    if dirProg [length(dirProg)] = '\' then
        delete (dirProg, length(dirProg), 1);

    nomeArqAjuda := dirProg + '\intercap.htm';

    strPCopy (def, dirProg + '\homepage');
    GetPrivateProfileString ('INTERCAP', 'PASTAPADRAO', def, valor, 255, 'intercap.ini');
    dirAtual := strPas (valor);

    getPrivateProfileString ('INTERCAP', 'arq1', '', p, 255, 'intercap.ini');
    ultimosDir [1] := strPas (p);
    getPrivateProfileString ('INTERCAP', 'arq2', '', p, 255, 'intercap.ini');
    ultimosDir [2] := strPas (p);
    getPrivateProfileString ('INTERCAP', 'arq3', '', p, 255, 'intercap.ini');
    ultimosDir [3] := strPas (p);
    getPrivateProfileString ('INTERCAP', 'arq4', '', p, 255, 'intercap.ini');
    ultimosDir [4] := strPas (p);
    getPrivateProfileString ('INTERCAP', 'arq5', '', p, 255, 'intercap.ini');
    ultimosDir [5] := strPas (p);
end;

procedure TForm1.CriaMenuReabrir1Click(Sender: TObject);
begin
    N11.Caption := ultimosDir [1];
    N21.Caption := ultimosDir [2];
    N31.Caption := ultimosDir [3];
    N41.Caption := ultimosDir [4];
    N51.Caption := ultimosDir [5];
end;

end.

