Bloco de Notas
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.
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.
É nesta janela que iremos
construir o menu do nosso exemplo. Observe que o primeiro título já está
selecionado.
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..., escolha a opção Create Submenu do PopupMenu, para criar
um submenu deste item.
O sub-menu de Formatar Fonte..., deverá estar igual a
figura mostrada abaixo. Como o Delphi
não reconhece caracteres brasileiros, o nome que ele dará para o item Itálico
será Itlico, suprimindo do Name o caractere á ( Name:= Itlico)
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.
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:
procedure
TPrincipal.Novo1Click(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
TPrincipal.Abrir1Click(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
TPrincipal.Salvar1Click(Sender: TObject);
begin
if SaveDialog1.Execute then
Memo1.Lines.SaveToFile(SaveDialog1.Filename);
end;
procedure
TPrincipal.Fonte1Click(Sender: TObject);
begin
FontDialog1.Font:=Memo1.Font;
{inicializa
a FontDialog com a font de Memo}
if FontDialog1.Execute then
Memo1.Font:=FontDialog1.Font;
end;
A linha
entre chaves indica um comentário, não sendo tratada pelo compilador do Delphi.
procedure
TPrincipal.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
TPrincipal.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
TPrincipal.Recortar1Click(Sender: TObject);
begin
Memo1.CutToClipboard;
Colar1.Enabled:=True; {habilita o item Colar}
end;
procedure
TPrincipal.Copiar1Click(Sender: TObject);
begin
Memo1.CopyToClipboard;
Colar1.Enabled:=True;
end;
procedure
TPrincipal.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 Memo1Change(Sender: TObject);
procedure
Recortar1Click(Sender: TObject);
procedure
Copiar1Click(Sender: TObject);
procedure
Colar1Click(Sender: TObject);
procedure
Fonte;
private
{
Private declarations }
public
{
Public declarations }
end;
implementation
{$R *.DFM}
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
TPrincipal.Negrito1Click(Sender: TObject);
begin
Negrito1.Checked:= Not Negrito1.Checked;
Fonte;
end;
procedure
TPrincipal.Itlico1Click(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 pressionando F9.
Rapido facil e simples de elaborar
ResponderExcluir