Programa Bloco de Notas

Olá galera, tudo certo?

No post de hoje vamos fazer um bloco de notas no Lazarus.

Vamos começar!

O nosso próximo projeto será um editor de texto simples do tipo caractere, com ele poderemos alterar o tipo e tamanho da fonte utilizada em todo o texto, recortar, colar e copiar partes selecionadas, salvar e abrir nosso texto utilizando as caixas de diálogo padrão fornecidas pelo Delphi.

Monte o formulário conforme o exemplo:

Defina a propriedade Align do componente Memo como alCliente. Esta propriedade faz com que o Memo ocupe toda a área do cliente do formulário, mesmo que ele seja redimensionado.

 

O Delphi possui componentes visíveis e não visíveis. Os componentes visíveis são aqueles que durante a execução do programa são vistos pelo usuário. Até aqui todos os componentes que trabalhamos são visíveis, como TEdit, TButton, TForm e outros.

Os componentes não visíveis, não aparecem na janela do usuário em tempo de execução.
São eles, Timer, Menus, Caixas de diálogo comuns e controle de acesso a dados.

O nosso exemplo de Bloco de Notas, usará um menu e quatro caixas de diálogo.

Para começar a editar o menu, dê um duplo clique no controle MainMenu que está dentro do formulário, para que a janela Menu Designer apareça.

Vá até a janela Object Inspector e mude a propriedade Caption para &Arquivo e pressione Enter – para acesso via teclado, usamos o “&” comercial antes da letra que queremos que seja o atalho. Este procedimento, cria o menu Arquivo e move a barra de destaque para o lado, dê um clique logo abaixo da opção Arquivo inserindo um item deste menu. Repare que o Delphi coloca um nome para este menu baseado na propriedade Caption, neste caso Name:=Arquivo.

 

Monte as demais opções do nosso menu seguindo a janela Menu Designer mostrada abaixo. Para criar um separador no menu, digite apenas um sinal de menos ( – ) na propriedade Caption do item abaixo de Salvar.

Terminado o menu Arquivo, inicie o menu Editar, como segue abaixo. Defina as teclas de atalho na propriedade ShortCut dos itens de menu.

Quando chegarmos ao item Formatar Fonte…, vamos criar um submenu, basta você clicar ao lado onde está escrito “Adicionar submenu”, e colocar os nomes conforme o exemplo abaixo, lembrem de alterar o Caption.

Feche a Menu Designer, voltando ao formulário principal. Insira nele as caixas de diálogo que irão formatar a fonte exibida no componente Memo, e as caixas que irão operar com o disco (HD). Os componentes destas caixas estão na paleta Dialogs do Delphi.

Pode ser adicionado os itens que eu mostrei aqui acima.

Acabamos de desenhar o nosso formulário, colocando todos os componentes a ele pertencentes. Os visíveis e os não visíveis. Mesmo os componentes não visíveis estando em cima do Memo, não atrapalharão a apresentação do texto.

Salve seu trabalho para darmos início à construção do código.

As caixas de diálogo são mostradas através do método Execute. Este método responde True se o usuário selecionou Ok, indicando que o programa deverá responder às alterações da caixa de diálogo exibida. Se o usuário não quiser efetuar as mudanças, será retornado False.

Dê um clique no item Novo do menu, para chamar o procedimento associado. Este procedimento irá limpar a caixa Memo1 e desabilitar as opções de edição do texto. Estas opções estarão desabilitadas até que se tenha um texto para Recortar, Copiar ou Colar.
Siga o código mostrado a seguir:


Novo

procedure TForm1.NovoClick(Sender: TObject);
begin
   Memo1.Clear;
   Recortar1.Enabled:=False;
   Copiar1.Enabled:=False;
   Colar1.Enabled:=False;
end;

A opção Abrir trabalhará com a caixa de diálogo OpenDialog, verificando o valor retornado por Execute e carregando o conteúdo do arquivo selecionado, na propriedade Lines do objeto Memo.

procedure TForm1.AbrirClick(Sender: TObject);
begin
  if OpenDialog1.Execute then
    Memo1.Lines.LoadFromFile(OpenDialog1.Filename);
end;

Digite o código para as outras caixas de diálogo. Elas trabalham alterando as propriedades do Memo após as mudanças realizadas pelo usuário.

procedure TForm1.SalvarClick(Sender: TObject);
begin
  if SaveDialog1.Execute then
    Memo1.Lines.SaveToFile(SaveDialog1.Filename);
end; 

procedure TForm1.Fonte1Click(Sender: TObject);
begin
  FontDialog1.Font:=Memo1.Font;
    if FontDialog1.Execute then
      Memo1.Font:=FontDialog1.Font;
end; 
procedure TForm1.Cor1Click(Sender: TObject);
begin
  ColorDialog1.Color:=Memo1.Color;
    if ColorDialog1.Execute then
      Memo1.Font.Color:=ColorDialog1.Color;
end;

Quando o programa começa a ser executado, o evento OnCreat ocorre com o Formulário, no  procedimento deste evento, iremos apagar o conteúdo do Memo e desabilitar as opções do menu Editar.

procedure TForm1.FormCreate(Sender: TObject);
begin
  Memo1.Clear;
 Recortar1.Enabled:=False;
 Copiar1.Enabled:=False;
 Colar1.Enabled:=False;
end;

 

As opções Recortar e Copiar do menu Editar, estarão ativas assim que o Memo contiver algum texto. Cada vez que ocorre uma mudança no Memo, o evento OnChange é gerado.

procedure TForm1.Memo1Change(Sender: TObject);
begin
  Recortar1.Enabled:=True;
    Copiar1.Enabled:=True;
end;

Os recursos de Recortar, Colar e Copiar utilizam o objeto TClipBoard. Com ele nós usamos a área de transferência do Windows e podemos trocar informação entre programas.

O objeto TMemo possui métodos próprios de trabalhar com o Clipboard, eles estão nos  procedimentos para os itens do menu Editar mostrados abaixo.

procedure TForm1.Recortar1Click(Sender: TObject);
begin
  Memo1.CutToClipboard;
  Colar1.Enabled:=True; {habilita o item Colar}
end;
procedure TForm1.Copiar1Click(Sender: TObject);
begin
  Memo1.CopyToClipboard;
  Colar1.Enabled:=True;
end;
procedure TForm1.Colar1Click(Sender: TObject);
begin
  Memo1.PasteFromClipboard;
end;

As opções Negrito e Itálico, formatarão o texto e mudarão também a propriedade Checked do item no menu, indicando que elas estão selecionadas. Os procedimentos associados à negrito e itálico, trabalham juntos com o procedimento Fonte que verificará o estado das
opções alterando as propriedades da fonte do Memo.

Inicie declarando o procedimento Fonte na seção de definição do tipo TPrincipal – nosso formulário. E depois, implemente-o na seção Implementation.

procedure Fonte;

procedure TPrincipal.Fonte ();
begin
  if (Negrito1.Checked=False) and (Itlico1.Checked=False) then
    Memo1.Font.Style:= [];
  if (Negrito1.Checked=True) and (Itlico1.Checked=False) then
    Memo1.Font.Style:= [fsBold];
  if (Negrito1.Checked=False) and (Itlico1.Checked=True) then
    Memo1.Font.Style:= [fsItalic];
  if (Negrito1.Checked=True) and (Itlico1.Checked=True) then
    Memo1.Font.Style:= [fsBold, fsItalic];
end;
procedure TForm1.Negrito1Click(Sender: TObject);
begin
  Negrito1.Checked:= Not Negrito1.Checked;
  Fonte;
end;
procedure TForm1.Italico1Click(Sender: TObject);
begin
  Itlico1.Checked:= Not Itlico1.Checked;
  Fonte;
end;

 

Quando o usuário clicar no menu Sair, fechará o formulário, finalizando a execução do programa pois este é o único formulário do nosso aplicativo. Isto é feito com o uso do método Close.

procedure TForm1.Sair1Click(Sender: TObject);
begin
  Close;
end;

 

Salve seu trabalho, e teste o programa.

 

Espero que tenham gostado e entendido, até a próxima!

  • Publicado por Giovani Da Cruz
  • 49 views
  • 0 comentarios
  • 24 de novembro de 2022

 

Está gostando do conteúdo?
Considere pagar um cafezinho para nossa equipe!

 

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Posts Relacionados a Categoria Computação

Continue aprendendo

Aumente o seu conhecimento
Explorando a Tokenização: Uma Abordagem Crucial no Processamento de Dados
4 de abril de 2024
Conheça o GPT: A Revolução da Inteligência Artificial no Processamento de Linguagem Natural
4 de abril de 2024
Qual a diferença entre software livre e software open source?
1 de abril de 2024
A Importância de Protótipos na Área de Desenvolvimento de Software
27 de março de 2024
Para Onde Vão Meus Arquivos Excluídos?
24 de março de 2024
Como Fazer Comentários em Instruções de um Arquivo .BAT
20 de março de 2024
Arquivos .BAT: Uma Janela para a Automação no Windows
19 de março de 2024
Como você se torna um especialista em sistemas?
29 de fevereiro de 2024
A Fascinante Mágica dos GUIDs: Identificadores Únicos no Mundo Digital
31 de janeiro de 2024
O que é análise de coorte?
20 de janeiro de 2024