Edit
edt
Item de menu
itm
Menu
mnu
Label
lbl
Form
frm
Monte as demais opções do menu seguindo a figura do 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. Definindo as teclas de atalho na propriedade ShortCut para cada item do menu.
Quando chegar ao item Formatar Fonte, escolha a opção Create
Submenu do PopupMenu, para criar um submenu deste item.
O sub-menu do item Formatar Fonte, deverá estar igual a figura mos- trada abaixo. Como o Delphi não reconhece caracteres brasileiros, o nome dado ao item Itálico será Itlico, suprimindo do Name o caractere á ( Name:= Itlico).
Feche o Menu Designer, voltando ao formulário principal. Adicione as caixas de diálogo que irão formatar a fonte exibida no componente Memo, e aquelas que irão abrir e salvar arquivos. Os componentes destas cai- xas estão na paleta Dialogs do Delphi.
Acabamos de desenhar o nosso formulário, colocando nele todos os seus componentes, os visíveis e os não visíveis. Mesmo os componentes não visíveis estando sobre o componente Memo, não atrapalharão a apre- sentação do texto.
Salve seu trabalho para dar 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 pro- grama 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.
procedure TfrmBlocoNotas.itmNovoClick(Sender: TObject); begin memTexto.Clear; itmRecortar.Enabled:=False; itmCopiar.Enabled:=False; itmColar.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 sele- cionado, na propriedade Lines do objeto memTexto.
procedure TfrmBlocoNotas.itmAbrirClick(Sender: TObject); begin if OpenDialog.Execute then memTexto.Lines.LoadFromFile(OpenDialog.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 TfrmBlocoNotas.itmSalvarClick(Sender: TObject); begin if SaveDialog.Execute then memTexto.Lines.SaveToFile(SaveDialog.Filename); end; procedure TfrmBlocoNotas.itmFonteClick(Sender: TObject); begin FontDialog.Font:=memTexto.Font;
{inicializa a FontDialog com a font de Memo}
if FontDialog.Execute then
memTexto.Font:=FontDialog.Font;
end;
A linha entre chaves indica um comentário, não sendo tra- tada pelo compilador do Delphi.
procedure TfrmBlocoNotas.itmCorClick(Sender: TObject); begin ColorDialog.Color:=memTexto.Color; if ColorDialog.Execute then memTexto.Font.Color:=ColorDialog.Color; end;
Como o memo está ocupando toda área do cliente no formulário, fica praticamente impos-
Quando começar a execução do programa, o evento OnCreat ocorre para o formulário, e o procedimento deste evento irá apagar o conteúdo do Memo e desabilitar as opções do menu Editar.
procedure TfrmBlocoNotas.FormCreate(Sender: TObject); begin memTexto.Clear; itmRecortar.Enabled:=False; itmCopiar.Enabled:=False; itmColar.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 TfrmBlocoNotas.memTextoChange(Sender: TObject); begin itmRecortar.Enabled:=True; itmCopiar.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 Memo possui métodos pró- prios para trabalhar com o Clipboard, eles estão nos procedimentos para os itens do menu Editar mostrados abaixo.
procedure TfrmBlocoNotas.itmRecortarClick(Sender: TObject); begin memTexto.CutToClipboard; itmColar.Enabled:=True; {habilita o item Colar} end;
procedure TfrmBlocoNotas.itmCopiarClick(Sender: TObject); begin memTexto.CopyToClipboard; itmColar.Enabled:=True; end; procedure TfrmBlocoNotas.itmColarClick(Sender: TObject); begin memTexto.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 ativas. Os procedimentos associados à negrito e itálico, trabalham junto 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 TfrmBlocoNotas - o formulário. E com o cursor ainda na mesma linha, clique-direito e no menu escolha a opção Complete Class at Cursor ou pressione Ctrl+Shit+C, para o Delphi adicionar o esqueleto do procedi- mento na seção Implementation.
procedure itmCopiarClick(Sender: TObject);
procedure itmColarClick(Sender: TObject);
procedure Fonte;
private
{ Private declarations }
Após Ctrl+Shit+C, você terá:
Digite:
procedure TfrmBlocoNotas.Fonte;
begin
if not itmNegrito.Checked and not itmItalico.Checked then memTexto.Font.Style:= [];
if itmNegrito.Checked and not itmItalico.Checked then memTexto.Font.Style:= [fsBold];
if not itmNegrito.Checked and itmItalico.Checked then memTexto.Font.Style:= [fsItalic];
if itmNegrito.Checked and itmItalico.Checked then memTexto.Font.Style:= [fsBold, fsItalic];
end;
procedure TfrmBlocoNotas.itmNegritoClick(Sender: TObject);
begin
itmNegrito.Checked:= not itmNegrito.Checked; Fonte;
end;
procedure TfrmBlocoNotas.itmItalicoClick(Sender: TObject);
begin
itmItalico.Checked:= not itmItalico.Checked; Fonte;
Quando o usuário clicar na opção Sair do menu Arquivo, fechará o for- mulário, e como este é o único formulário do programa, a execução dele será finalizada. O formulário é fechado com o método Close.
procedure TfrmBlocoNotas.itmSairClick(Sender: TObject);
begin
Close;
end;
Salve seu trabalho, e teste o programa pressionando F9.
Nós já aprendemos a associar um ícone ao projeto, agora iremos apren- der a fazer um ícone personalizado, utilizando o aplicativo Image Editor do Delphi. Para inicializá-lo, vá até a opção Tools do menu principal do Delphi, e escolha Image Editor.
Na janela de propriedades, escolha uma matriz de 32 x 32 pixels e 16 cores.
Desenhe um ícone semelhante ao da figura abaixo, utilizando recursos semelhantes ao programa Paint do Windows. A cor de fundo (verde) funciona como uma cor Cromaqui - transparente ao fundo.
Salve seu ícone memorizando o nome completo incluindo o caminho. E feche o aplicativo Image Editor.
O formulário possui no canto superior esquerdo o ícone padrão do Delphi. Para trocar este ícone pelo criado anteriormente, deveremos alterar a propriedade Icon do formulário atribuindo a ela o ícone que acabamos de desenhar.
Use este ícone para representar o Bloco de Notas no Windows, da mes- ma forma descrita para a Calculadora.
Quando o usuário escolhe as opções Abrir e Salvar do menu, as caixas de diálogo Abrir e Salvar como são abertas aguardando uma entrada de dados. Até agora neste exemplo estas caixas exibiam todo tipo de arqui- vo sem nenhum tipo de filtro.
Altere também a propriedade Filter do SaveDialog deixando-a igual à primeira linha do OpenDialog. E a propriedade DefaultExt, que indica a extensão padrão para o nome do arquivo que será salvo caso o usuário não escolha nenhuma.