• Bem vindo à nossa comunidade - Quer se juntar ao resto dos nossos membros? Registre-se*Registros aprovados pela adminitração

[Tutorial - Intermediário] Correção Ortográfica No Delphi

XSystemX

Usuário XPZ
Olá pessoal,

Sou participante de outros fóruns de Delphi e encontrei esta dica e achei válido postar aqui pra todos nós.

*****************************************************************************************

Em sistemas onde o usuário precisar digitar textos como observações, emails um diferencial para a aplicação seria que o texto pudesse ser corrigido ortograficamente. Então você pode se perguntar... como faço isso ?
A resposta é: Speller

O Speller é um componente não visual que poder adicionar o recurso de correção ortográfica a qualquer aplicação. O dicionário utilizado é o ISpell, que é free.

Instalando o Speller
Primeiramente precisamos baixar o arquivo TSpellers.zip que encontra-as em
Por favor, Entrar ou Registrar para ver o conteúdo das URLs!
, é preciso também realizar o download o dicionário para português do Brasil. O arquivo chama-se ISpGaItPoSp.exe e pode ser encontrado em
Por favor, Entrar ou Registrar para ver o conteúdo das URLs!
.

Se desejar, baixe todos os arquivos e um exemplo clicando aqui.

Instale o dicionário antes de instalar o componente.

Para instalar o componente siga os passos:
1 – Descompacte o arquivo, a pasta TSpellers será criada.
2 – Adicione o caminho da pasta no Library do Delphi, indo em Tools->Environment Option -> Library
3 – No delphi, abra o pacote de runtime SpellersRT7.dpk, veja que existe um para cada versão de delphi, e compilo o pacote
4 – Faça o mesmo para o pacote de design, chamado SpellersD6.dpk, veja que também possui um para cada versão do delphi, compile o pacote e então clique em Install.

Será adicionada à paleta de componentes uma guia LS contento dois componentes, SpellChecker e SpeelLanguageComboBox, conforme visto na Figura 1.

Corretor1.jpg


Figura 1. Componentes LS

Usando o corretor

Para construir o exemplo vou utilizar o Delphi 2006, porém sinta-se livre para utilizar a versão que você possuir.

Inicie um novo projeto do tipo VCL Forms Application. No formulário principal adicione um painel, configurando sua propriedade Align para alTop. Ao painel insira um TSpellLanguageComboBox , insira também um botão no painel, mudando seu caption para ‘Correção ortográfica’.

Ao formulário adicione um TMemo e configure a propriedade Align para alClient, e mude sua proprieda HideSelection para False. Arraste para o formulário o componente TSpellChecker. O formulário da aplicação deve se parecer com a Figura 2.


Corretor2.jpg


Figura 2. Exemplo de TSpellChecker

Ligue o SpellLanguageComboBox1 ao SpellChecker1 através da propridade SpellChecker. No evento onClick do botão adicione o código da Listagem 1.

Listagem 1. Evento onClick
procedure TForm1.Button1Click(Sender: TObject);
begin
Spellchecker1.Check(Memo1);
end;

No evento onShow do formulário vamos configurar a língua padrão para o português do Brasil mudando a posição do SpellLanguageComboBox1 para 3, conforme Listagem 2.

Listagem 2. Definindo língua padrão
procedure TForm1.FormShow(Sender: TObject);
begin
SpellLanguageComboBox1.ItemIndex := 3;
end;

Execute a aplicação, digite qualquer coisa grafada incorretamente e clique no botão “Correção Ortográfica”, você verá a tela da Figura 3.

Corretor3.jpg


Figura 3. Corretor em ação

Melhorando o visual

Veja que a janela de correção (Figura 3) está toda em inglês. Existe a possibilidade de traduzi-la para o português. O TSpellChecker oferece algumas variáveis públicas que podem ser alteradas durante execução e só são utilizadas quando a propriedade UserLanguage é configurada para ulOther.

Adicione o código da Listagem 3 no evento onCreate do formulário e execute a aplicação e você que agora tudo foi traduzido.

Listagem 3. Traduzindo
procedure TForm1.FormCreate(Sender: TObject);
begin
spOVariants := '&Variantes';
spODelete := '&Deletar';
spOChange := '&Alterar';
spOChangeAll := 'Alterar &Todas';
spOSkip := '&Ignorar';
spOSkipAll := 'I&gnorar Todas';
spOAdd := 'In&cluir';
spOCancel := 'Ca&ncelar';
spOCancelEdit := 'Desfa&zer Edição';
spONotFound := 'Palavra desconhecida';
spOHyphen := 'Hifenização incorreta';
spOCaps := 'Erro em Maiúsculas';
spOAbbrev := 'Possivel abreviação';
spONoSentenceCap := 'Erro em maíusculas da sentença';
spOExtraSpaces := 'Espaços extras';
spOMissingSpace := 'Falta de espaço';
spOInitialNumeral := 'Numerais no início da palavra';
spORepeatedWord := 'Palavra repetida';
spOFinish := 'Correção ortográfica concluida';
spOFinishCaption:= 'Mensagem';
spOCaption := 'Verificando — %s';
spOError := 'Erro de verificação No %d';
spOErrorLoad := 'Erro ao carregar DLL %s';
spOErrorUnload := 'Erro ao descarregar DLL %s';
spOErrorNoSpellChecker := 'Idioma %s não instalado';
spOStart := 'Iniciar';
Spellchecker1.UserLanguage := ulOther;
end;

Conclusão
Esta aí uma ferramenta simples, fácil de usar e que pode agregar algum diferencial em suas aplicações. Até a próxima !

Créditos:

Paulo Roberto Quicoli

Paulo Roberto Quicoli (pauloquicoli@gmail.com) é analista e programador da Control-M Informática. Trabalha com Delphi, desde sua primeira versão, e Firebird desenvolvendo aplicações cliente-servidor. Formado em Tecnologia de Processamento de dados pela FATEC, na cidade de Taquaritinga/SP
 
Topo Bottom