Olá pessoal, Sou participante de outros fóruns de Delphi e encontrei esta dica e achei válido postar aqui pra todos nós. Ainda não testei, mas espero que alguém possa fazê-lo e dar opiniões sobre o assunto. Atenciosamente Maryllene ***************************************************************************************** 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 http://www.luziusschneider.com/SpellerHome.htm , é 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 http://www.luziusschneider.com/Speller/English/index.htm. 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. 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. 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. 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 ! 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