Esse artigo faz parte da revista Clube Delphi edição 11. Clique aqui para ler todos os artigos desta edição

Imagem

Atenção: por essa edição ser muito antiga não há arquivo PDF para download. Os artigos dessa edição estão disponíveis somente através do formato HTML.

Crie um Editor de Texto

Aprenda a programar na melhor ferramenta do mercado através de exemplos práticos

 

O objetivo deste nova coluna, voltada para iniciantes na ferramenta, é demonstrar o uso dos objetos básicos do Delphi, a criação de menus e a funcionalidade das DialogBoxes, que podem ser encontradas na palheta Dialogs.

Um exemplo bem prático, que reúne todos estes conceitos, é a construção de um editor de textos - como o WordPad do Windows.

         Para criarmos nosso novo Word, não precisaremos de mais do que um formulário - que será nosso próprio editor, contendo um menu com todas as opções .

         Para iniciar, insira um objeto MainMenu (palheta standard) no formulário. Este objeto é chamados de não-visual, pois não é exibido quando o programa é executado.

         O próximo passo é montar nossa estrutura de menus. Dê um duplo clique sobre o objeto MainMenu1, para abrir o criador de menus do Delphi.

 

Imagem

 

         A primeira opção de menu, em branco, já aparece selecionada. Modifique sua propriedade Name para identificá-lo futuramente. Você também deve alterar a propriedade Caption, digitando o texto que será exibido para o usuário. Preencha de acordo com a tabela abaixo:

 

Name = MnuArquivo (Mnu é uma abreviatura para menu)

Caption = &Arquivo

 

         O caracter &, utilizado antes do caption 'Arquivo', server para sublinhar a letra 'A' no item de menu. Este recurso cria uma tecla de atalho, acionada através de ALT + letra sublinhada. Neste exemplo, se o usuário pressionar ALT+A, o menu Arquivo será aberto.

         Após configurar as propriedades, já é possível visualizar o menu com a opção 'Arquivo' dentro de nosso formulário.

 

Imagem

 

         Na figura acima, você pode visualizar como é criado um menu de opções no Delphi. Para criar um menu filho de 'Arquivo', clique no menu dentro do Montador de menus do Delphi. Um submenu será automaticamente aberto.

 

Imagem

 

Siga a lista abaixo e crie sete submenus para o menu 'Arquivo':

 

Imagem

 

         A sigla ITM, que vem na frente do nome do menu, é apenas uma abreviatura para Item de Menu (ITM). O quarto item será utilizado como um traço de divisão dentro das opções de Menu. Este serve como divisão e organização dos menus.

 

         A estrutura completa de  Menus do nosso editor deverá ser criada de acordo com a lista abaixo:

 

Imagem

 

         Em seguida, insira um objeto TrichEdit (palheta Win95), no formulário, e configure suas propriedades:

 

Name :        AreaTexto

Font :                    Times New Roman , 12, Normal , Cor Preta

Align :          alClient

Lines :         (clique duas vezes e elimine o conteúdo desta propriedade)

 

         A propriedade align, setada para  alClient, fará com que o objeto RichEdit se estenda por toda a área do Formulário, independente do seu tamanho. Por exemplo, se o formulário for maximizado, o objeto RichEdit será automaticamente redimensionado.

         Quando o usuário clicar com o botão inverso do mouse sobre o objeto Richedit, um menu flutuante será exibido, com algumas opções. Para criar este menu, insira um objeto TpopMenu (palheta standard) no form. Em seguida, configure a propriedade PopMenu, do objeto RichEdit1, setando como valor 'PopMenu1'.

 

         A criação do PopMenu (Menu de Atalho), é idêntica à criação do Menu principal. Clique duas vezes sobre o objeto PopMenu, e configure-o da seguinte forma:

 

Imagem

 

Imagem

 

Imagem

        

         Na figura acima, você pode visualizar como ficará o PopMenu já configurado (em tempo de edição) .

         Já que progredimos bastante no projeto, salve o seu aplicativo o mais rápido possível.

         Depois de salvo, o seu projeto irá  receber as primeiras linhas de código.  Ao clicar sobre a opção 'Novo' do menu 'Arquivo', automaticamente será exibida a tela de código referente ao evento OnClick, que será executado quando o usuário clicar no menu.

          O Item Novo criará  um documento em branco. Para isto, escreva a linha de código abaixo:

        

procedure TForm1.ItmNovoClick(Sender: TObject);

begin

  AreaTexto.Clear;

end;

 

         Lembre-se que configuramos a propriedade Name do objeto RichEdit para AreaTexto. Isto significa que o objeto de nome AreaTexto executará o método Clear (Apagar). Caso prefira, você pode colocar um comentário ao lado da linha de código, para, no futuro, lembrar o  seu significado.

 

procedure TForm1.ItmNovoClick(Sender: TObject);

begin

    AreaTexto.clear ;

  // Apagará todo o conteúdo da area de texto do editor.

end;

 

         Para iniciar a construção dos menus 'Abrir' e 'Salvar', insira um objeto TopenDialog e um TsaveDialog, ambos da palheta Dialogs. Configure suas propriedades de acordo com a tabela abaixo:

 

TopenDialog

Name:   OpenDialog1

Filter:    *.RTF|*.RTF|*.TXT|*.TXT

 

TsaveDialog

Name:             saveDialog1

Filter:   *.RTF|*.RTF|*.TXT|*.TXT

 

No item de menu 'Abrir', digite  a seguinte instrução:

 

procedure TForm1.ItmAbrirClick(Sender: TObject);

begin

if  opendialog1.execute  then

 // se objeto OpenDiaolog for executado então

Areatexto.Lines.loadFromFile (Opendialog1.filename);

// Objeto AreaTexto na propriedade Lines através do método loadfromfile

// (carregar do arquivo) irá receber como parâmetro o documento escolhido pelo usuário

end;

 

         Este código utiliza o comando IF para verificar se o objeto OpenDialog1 foi executado e se usuário confirmou a janela. Caso positivo, o documento escolhido será aberto na área de texto do editor.

Para o menu Salvar, temos o código abaixo:

 

procedure TForm1.itmSalvarClick(Sender: TObject);

begin

   if  SaveDialog1.execute  then

   // Se o objeto Save Dialog1 for executado então

   AreaTexto.Lines.SaveToFile (SaveDialog1.filename);

  // Objeto AreaTexto na propriedade Lines através do método SaveToFile

  // (SalvaArquivo) irá receber como parâmetro um nome de documento  escolhido pelo usuário.

end;

 

Menu Editar - Recortar:

 

procedure TForm1.itmCutClick(Sender: TObject);

begin

AreaTexto.CutToClipBoard;

// recorta o texto selecionado para a área de transferência

end;

 

Menu Editar - Copiar:

 

procedure TForm1.itmCopyClick(Sender: TObject);

begin

AreaTexto.CopyToClipBoard;

// copia o texto selecionado para a área de transferência

End;

 

Menu Editar -  Colar:

 

procedure TForm1.itmPasteClick(Sender: TObject);

begin

AreaTexto.PasteFromClipBoard;

// Cola o texto selecionado para a área de transferência

End;

 

Menu Sair:

 

procedure TForm1.itmSairClick(Sender: TObject);

begin

close; // fechar aplicação

End;

 

         Como exercício, implemente o código das opções do menu flutuante (popmenu). No site do ClubeDelphi (, na seção Primeiros Passos, é possível acessar a segunda parte desta matéria, onde alguns recursos mais rebuscados são inseridos. Lá também é possível baixar o aplicativo completo.