Clique para saber mais...
  Home     Download     Produtos / Cursos     Revista     Vídeo Aulas     Fórum     Contato   Clique aqui para logar | 17 de Outubro de 2026
  Login

Codinome
Senha
Salvar informações

 Esqueci minha senha
 Novo Cadastro

  Usuários
60 Usuários Online

  Revista ActiveDelphi
 Assine Já!
 Edições
 Sobre a Revista

  Conteúdo
 Apostilas
 Artigos
 Componentes
 Dicas
 News
 Programas / Exemplos
 Vídeo Aulas

  Serviços
 Active News
 Fórum
 Produtos / Cursos

  Outros
 Colunistas
 Contato
 Top 10

  Publicidade

  [Artigos]  Criando um editor de texto através do Delphi
Publicado por Admin : Quinta, Dezembro 19, 2002 - 06:21 GMT-3 (23578 leituras)
Comentários 3 Comentários   Enviar esta notícia a um amigo Enviar para um amigo   Versão para Impressão Versão para impressão
Administrador Com o Delphi aberto, vá no menu File e clique em Close All, depois no menu File clique em New Application, de um clique sobre o form que foi criado, caso ele não esteja aparecendo pressione F12. Altere as seguintes propriedades do form:
Caption = Editor de Texto WordZip
FormStyle = fsMDIForm
Name = frmPrincipal
WindowState = wsMaximized

E no Evento On Close do form coloque:   Action:= caFree // Libera o form da memória

Vá no menu File e clique em Save All, selecione o diretório que deseja salvar seu editor de texto, e na caixa (Nome do Arquivo) coloque Principal_Form, e clique em Salvar, logo em seguida aparecerá a janela para você salvar o projeto, na caixa (Nome do Arquivo) coloque WordZip, e clique em Salvar.
     Traga para o seu form um component MainMenu da palheta Standard, de um duplo clique sobre o componente e monte ele igual à figura abaixo:
        

       

     Traga para o seu form os componentes: OpenDialog, SaveDialog, FontDialog, PrintDialog ambos da palheta Dialog.
     Selecione o componente OpenDialog, na sua propriedade DefaultExt coloque WZP, na propriedade Filter clique sobre os três pontinhos e coloque:

    


     Depois clique em OK.

     Selecione o componente SaveDialog, na sua propriedade DefaultExt coloque WZP, na propriedade Filter clique sobre os três pontinhos e coloque:

     

        

     Depois clique em OK.

     Agora vamos criar o form que será responsável por exibir o conteúdo dos arquivos, vá no menu File e clique em New Form. Altera as seguintes propriedades do form:

     FormStyle = fsMDIChild
     Name = frmTexto
     WindowState = wsMaximized

     E no Evento On Close do form coloque:  Action:= caFree // Libera o form da memória

     Vá no menu File e clique em Save As... , na caixa (Nome do Arquivo) coloque Texto_Form e clique em Salvar. 
     Traga para o form um componente RichEdit da palheta Win32. Selecione o componente RichEdit e altera as seguintes propriedades:

     Align = alClient
     Lines = clique nos pontinhos e apague tudo que estiver na janela que será exibida, logo em  seguida clique em Ok.
     ScrollBars = ssVertical

     Pressione Shift+F12 e selecione frmPrincipal e clique em Ok.
     Vá no menu File e Clique em Use Unit... , selecione a unit Texto_Form e clique em OK. 

     Agora vamos começar a montar as procedures do nosso Editor de Texto:

     Clique em Arquivo e depois em Novo, e coloque o seguinte código:
     frmTexto := TfrmTexto.Create(self);
     frmTexto.Caption := 'Novo Documento';
     frmTexto.Show;

     Clique em Janelas e depois em Cascata, e coloque o seguinte código:
     Cascade;

     Clique em Janelas e depois em Lado a lado -> Horizontal e coloque o código:
     TileMode := tbHorizontal;
     Tile;

     Clique em Janelas e depois em Lado a lado -> Vertical e coloque o código:
     TileMode := tbVertical;
     Tile;

     Clique em Arquivo e depois em Salvar Como... e coloque o código:
     if MDIChildCount = 0 then Exit;
     With TfrmTexto(ActiveMDIChild) do
     begin
       SaveDialog1.FileName := Caption;
       if SaveDialog1.Execute then
         RichEdit1.Lines.SaveToFile(SaveDialog1.FileName);
       Caption := SaveDialog1.FileName;
     {A linha abaixo será usado mais tarde, mas mesmo assim coloque-a}
      // i:=0; 

     end;

     Clique em Arquivo e depois em Salvar, e coloque o código:
     With TfrmTexto(ActiveMDIChild) do
     begin
       if Caption = 'Novo Documento' then
       begin
         SalvarComo1Click(Sender);
         Exit;
       end;
       RichEdit1.Lines.SaveToFile(Caption);
       {A linha abaixo será usado mais tarde, mas mesmo assim coloque-a}
       // i:= 0;
     end;

     Clique em Arquivo e depois em Abrir... , e coloque o código:
     if OpenDialog1.Execute then
     With TfrmTexto.Create(self) do
     begin
       RichEdit1.Lines.LoadFromFile(OpenDialog1.FileName);
       Caption := OpenDialog1.FileName;
     end;

     Clique em Arquivo depois em Fechar, e coloque o código:
      if MDIChildCount = 0 then Exit;
     ActiveMDIChild.Close;

     Clique em Arquivo e depois em Fechar Todas, e coloque o código:
     var i: Integer;
     for i:= MDIChildCount-1 downto 0 do
       MDIChildren[i].Close;

     Clique em Arquivo e depois em Sair, e coloque o código:
     Close;

     Clique em Editar e depois em Recortar, e coloque o código:
     if MDIChildCount = 0 then Exit;
     With TfrmTexto(ActiveMDIChild) do
     begin
       RichEdit1.CutToClipboard;
     end;

     Clique em Editar e depois em Copiar, e coloque o código:
     if MDIChildCount = 0 then Exit;
     With TfrmTexto(ActiveMDIChild) do
     begin
       RichEdit1.CopyToClipboard;
     end;

     Clique em Editar e depois em Colar, e coloque o código:
     if MDIChildCount = 0 then Exit;
     With TfrmTexto(ActiveMDIChild) do
     begin
       RichEdit1.PasteFromClipboard;
     end;

     Clique em Editar e depois em Selecionar Tudo, e coloque o código:
     if MDIChildCount = 0 then Exit;
     With TfrmTexto(ActiveMDIChild) do
     begin
       RichEdit1.SelectAll;
     end;

     Clique em Formatar e depois em Fonte, e coloque o código:
     if MDIChildCount = 0 then Exit;
     With TfrmTexto(ActiveMDIChild) do
     begin
       FontDialog1.Font.Assign(RichEdit1.SelAttributes);
       if (FontDialog1.Execute) then
         RichEdit1.SelAttributes.Assign(FontDialog1.Font);
     end; 

     Clique em Formatar e depois em Alinhamento -> Esquerda e coloque o código:
     if MDIChildCount = 0 then Exit;
     With TfrmTexto(ActiveMdiChild) do
     begin
       RichEdit1.Paragraph.Alignment := taLeftJustify;
     end;

     Clique em Formatar e depois em Alinhamento -> Direita e coloque o código:
     if MDIChildCount = 0 then Exit;
     With TfrmTexto(ActiveMdiChild) do
     begin
       RichEdit1.Paragraph.Alignment := taRightJustify;
     end;

     Clique em Formatar e depois em Alinhamento -> Centro e coloque o código:
     if MDIChildCount = 0 then Exit;
     With TfrmTexto(ActiveMdiChild) do
     begin
       RichEdit1.Paragraph.Alignment := taCenter;
     end;

     Clique em Formatar e depois em Estilos ->Negrito e coloque o código:
     if MDIChildCount = 0 then Exit;
     With TfrmTexto(ActiveMDIChild) do
     begin
       if (fsBold in RichEdit1.SelAttributes.Style) then
         RichEdit1.SelAttributes.Style := RichEdit1.SelAttributes.Style - [fsBold]
       else
         RichEdit1.SelAttributes.Style := RichEdit1.SelAttributes.Style + [fsBold];
     end;

     Clique em Formatar e depois em Estilos ->Itálico e coloque o código:
     if MDIChildCount = 0 then Exit;
     With TfrmTexto(ActiveMDIChild) do
     begin
       if (fsItalic in RichEdit1.SelAttributes.Style) then
         RichEdit1.SelAttributes.Style := RichEdit1.SelAttributes.Style - [fsItalic]
       else
         RichEdit1.SelAttributes.Style := RichEdit1.SelAttributes.Style + [fsItalic];
     end;

     Clique em Formatar e depois em Estilos ->Sublinhado e coloque o código:
     if MDIChildCount = 0 then Exit;
     With TfrmTexto(ActiveMDIChild) do
     begin
       if (fsUnderline in RichEdit1.SelAttributes.Style) then
         RichEdit1.SelAttributes.Style := RichEdit1.SelAttributes.Style - [fsUnderline]
       else
       RichEdit1.SelAttributes.Style := RichEdit1.SelAttributes.Style + [fsUnderline];
     end;

     Clique em Arquivo e depois em Imprimir, e coloque o código:
     if MDIChildCount = 0 then Exit;
     With TfrmTexto(ActiveMDIChild) do
     begin
       if (PrintDialog1.Execute) then
       RichEdit1.Print(Text);
     end;

     Pressione Shift+F12 e selecione frmTexto e clique em Ok.
     Caso na sua tela esteja sendo exibido o form pressione a tecla F12 para visualizar a unit, acima da palavra implementation você deve ter algo parecido com isto:

     var
       frmTexto: TfrmTexto;
       {Coloque a linha abaixo}
       i: Integer;

     Agora pressione F12 novamente para voltarmos ao form, clique sobre o componente RichEdit e pressione a tecla ESC, agora no Object Inspector, clique na palheta Events, de um duplo clique no evento OnCreate, e digite o código:
      i := 0;

     Clique novamente sobre o componente RichEdit, e no seu evento OnKeyPress digite o código:
     i := i + 1;

     Vá no menu File e clique em Use Unit.. e selecione a unit Principal_Form e clique em Ok.
     Agora pressione F12 novamente para voltarmos ao form, clique sobre o componente  RichEdit e pressione a tecla ESC, agora no Object Inspector, clique na palheta Events, de um duplo clique no evento OnCloseQuery, e digite o código: 

     var sArquivo:String;
     sFrase:Pchar;
     sArquivo:='Deseja salvar as alterações feitas em: '+Caption;
     sFrase:= PChar(sArquivo);
     if i<>0 then
       Case MessageBox(Handle, sFrase, 'Atenção!!!', MB_YESNOCANCEL +    MB_ICONQUESTION+ MB_DEFBUTTON2) of IDYES:
     if Caption = 'Novo Documento' then
     begin
       frmPrincipal.SalvarComo1Click(Sender);
     end
     else
       RichEdit1.Lines.SaveToFile(Caption);
       IDNO: Canclose:= True;
       IDCANCEL: Canclose:= False;
     end;

     Agora só será necessário fazermos três alterações, para que nosso editor de texto esteja funcionando perfeitamente:

     Vá nas procedures do frmPrinipal, Salvar e SalvarComo, e elimine as duas barras na frente da letra i, para que quando você salvar um arquivo, ele coloque o valor 0(zero), na variável que controla se o documento sofreu ou não alterações, podendo assim perguntar se o usuário deseja salvar as alterações feitas.
     Estando no form principal altere a propriedade WindowMenu para Janela1, isto significa que no menu janela será exibido uma lista contendo todas as janelas abertas no momento.

     Agora crie um novo form e associe-o a opção do menu Ajuda, essa parte você faz sozinho.
  

     autor : Fernando Gonçalves - colaborador

 



Comentários Comentários
   Ordem:  
Comentários pertencem aos seus respectivos autores. Não somos responsáveis pelo seus conteúdos.


por: marco.molina : Nov 10, 2004 - 09:05
(Informações sobre o membro | Enviar uma mensagem)
Faltou na página as figuras "editortexto2.jpg" e "editortexto3.jpg" para visualizar completamente. Se puder envie para mim - marco.molina@click21.com.br


por: Ricardo.Felix : Ago 23, 2007 - 01:00
(Informações sobre o membro | Enviar uma mensagem)
Preciso das imagens tamem .. C puder me enviar ..

ricoflx@yahoo.com.br
  Edição 112

Revista ActiveDelphi

  50 Programas Fontes


  Produtos

Conheça Nossos Produtos

Copyright© 2001-2016 – Active Delphi – Todos os direitos reservados