Faça Sua Pesquisa.

sexta-feira, 17 de fevereiro de 2012

Criando um Editor de Texto no Delphi (Mais Avançado)

Primeiramente com o Delphi já aberto (é claro rsrs) crie um novo projeto File > VCL Forms Application – Delphi for Win32 (se você estiver utilizando Delphi 7, será apenas Application).



Vamos agora dar uma customizada no nosso formulário. Mude o Caption do form (nome que se dá no Delphi para aquele nome que fica em cima do formulário).



Vamos criar os “controles” do nosso editor agora.
Crie um “ToolBar”. Para isso vá até a aba “Win32” e clique em “TToolBar” depois clique no seu “form” ou formulário.



Diferente do outro artigo que nos utilizamos o componente “Memo”, neste usaremos o componente “RichEdit”. Portanto coloque um “RichEdit” no seu “Form”, ele pode ser encontrado na guia “Win32”. (Clique em “TRichEdit” e depois de um clique no Formulário).



Selecione o “RichEdit” que você acabou de criar, na Object Inspactor (F11) coloque:

Align = alClient
ScrollBars = ssVertical
Veja como ficou:



Procure Lines e depois clique nos três pontinhos “...” irá abrir uma janela, não deixe nenhum caractere dentro dessa janela e clique em OK.



Vamos criar os botões de navegação do nosso editor.
Para isso clique com o botão direito na “ToolBar” e clique em “New Button”.



Crie 13 botões dentro do “ToolBar” utilizando o procedimento mostrado acima.
Para colocar as imagens nos botões, utilizando a “ToolBar”, precisamos colocar um componente chamado “ImageList”.



Vamos “linkar” a “ToolBar” com a “ImageList” para isso seleciona a “ToolBar” que criamos anteriormente, va na Object Inspector (F11)



Depois de ter “linkado” tudo certinho, vamos adicionar as imagens para dentro do “ImageList” Para isso, clique 2 veses em cima do componente. Veja a janelinha:



Clique no botão “ADD” e coloque as imagens que você desejar. Depois organize direitinho seguindo a ordem dos botões. (Se você não tem as imagens dos botões não se preocupe, no fim do artigo irei deixar um link com os icones utilizados no artigo)



Coloque um “Opendialog” e um ”Savedialog” dentro do “form”, para isso procure a aba “Dialogs”, depois no “Opendialog” duas vezes no “Opendialog” e duas vezes no “Savedialog”.



Selecione o “Opendialog” e o ”Savedialog” que você acabou de criar, e modifique a propriedade da Object Inspector “Filter”, Coloque isto: “Arquivos RichText|*.rtf” (sem aspas).
Selecione os botões que você ira utilizar para Negrito, Itálico e Sublinhado. Vá na Object Inspector (F11) e mude a propriedade “Style” para “tbsCheck”.



Layout prontinho, agora vamos programar!



Vamos trabalhar com 2 funções no nosso projeto. Primeiro vamos declarar elas em private:

  private

    function TextoSelecionado: TTextAttributes;

    procedure AtualizaBotoes;


Agora vamos colocar as funções por inteiro no bloco de codigo, coloque isso após a “implementation”
:
function TForm1.TextoSelecionado: TTextAttributes; //Responsavel por captar o texto selecionado para aplicar efeitos de fonte

begin

  if RichEdit1.SelLength > 0 then Result := RichEdit1.SelAttributes

  else Result := RichEdit1.DefAttributes;

end;


procedure TForm1.AtualizaBotoes();  // responsavel por afundar os botões em tempo de execução (RunTime)

begin

    with RichEdit1.Paragraph do

  try

    ToolButton9.Down := fsBold in RichEdit1.SelAttributes.Style;

    ToolButton10.Down := fsItalic in RichEdit1.SelAttributes.Style;

    ToolButton11.Down := fsUnderline in RichEdit1.SelAttributes.Style;

    if Ord(Alignment) = 0 then

    begin

      ToolButton12.Down := True;

      ToolButton15.Down := False;

      ToolButton14.Down := False;

    end;

    if Ord(Alignment) = 1 then

    begin

      ToolButton12.Down := False;

      ToolButton15.Down := True;

      ToolButton14.Down := False;

    end;

    if Ord(Alignment) = 2 then

    begin

      ToolButton12.Down := False;

      ToolButton15.Down := False;

      ToolButton14.Down := True;

    end;

  except

    application.terminate; //se acontecer algum problema nas funções acima, o programa fecha.

  end;

end;


Clique duas vezes no botão de novo arquivo e coloque o codigo:

RichEdit1.Clear;


Clique duas vezes no botão de Abrir e coloque o codigo:

  if opendialog1.Execute then

  begin

    Richedit1.Lines.LoadFromFile(opendialog1.FileName);

    Richedit1.SetFocus;

  end;


Clique duas vezes no botão de Salvar e coloque o codigo:

  if Savedialog1.Execute then

  begin

    RichEdit1.Lines.SavetoFile(Savedialog1.FileName);

    RichEdit1.SetFocus;

  end;


Clique duas vezes no botão de Colar e coloque o codigo:

  RichEdit1.PasteFromClipboard;


Clique duas vezes no botão de Copiar e coloque o codigo:

  RichEdit1.CopyToClipboard;


Clique duas vezes no botão de Recortar e coloque o codigo:

  RichEdit1.CutToClipboard;


Clique duas vezes no botão de Negrito e coloque o codigo:

  if ToolButton9.Down = false then

    TextoSelecionado.Style := TextoSelecionado.Style - [fsBold]

  else

    TextoSelecionado.Style := TextoSelecionado.Style + [fsBold];


Clique duas vezes no botão de Italico e coloque o codigo:

  if ToolButton10.Down  then

    TextoSelecionado.Style := TextoSelecionado.Style + [fsItalic]

  else

    TextoSelecionado.Style := TextoSelecionado.Style - [fsItalic];


Clique duas vezes no botão de Sublinhado e coloque o codigo:

  if ToolButton11.Down then

    TextoSelecionado.Style := TextoSelecionado.Style + [fsUnderline]

  else

    TextoSelecionado.Style := TextoSelecionado.Style - [fsUnderline];


Clique duas vezes no botão de Alinhar a esquerda e coloque o codigo:

  RichEdit1.Paragraph.Alignment := TAlignment(0);


Clique duas vezes no botão de Alinhar ao centro e coloque o codigo:

  RichEdit1.Paragraph.Alignment := TAlignment(2);


Clique duas vezes no botão de Alinhar a Direita e coloque o codigo:

 RichEdit1.Paragraph.Alignment := TAlignment(1);


Clique duas vezes no botão de Fechar o Programa e coloque o codigo:

Application.terminate;


Selecione o “RichEdit1” va na aba “Events” da Object Inspector clique 2 vezes no evento “onchange”:



  AtualizaBotoes();


Agora na mesma janela e com o “RichEdit1” selecionado, clique 2 vezes no evento “SelectionChange” e coloque:

  AtualizaBotoes();


Selecione o “Form” e clique 2 vezes no evento “OnShow” e coloque:

  AtualizaBotoes();

0 comentários:

Postar um comentário

TecCodigos Copyright © 2011 | Template created by O Pregador | Powered by Blogger