Corrector ortográfico

Corrector ortográfico

Postby Garbi » Wed Jan 11, 2023 12:19 pm

Hola estoy implementando este código para corrector ortográfico para campos memos que he visto en otro tema (gracias a AJHM):

Code: Select all  Expand view  RUN
Function ORTOGRAFIA(Texto)
  Local oWord,oDoc,oTexto
  Local cText:=Texto

  oWord:=TOleAuto():New( "Word.Application" )
  oWord:Visible := .f.
  oWord:Documents:Add()
  oDoc := oWord:Get("ActiveDocument")

  oTexto := oWord:Selection()
  oTexto:Text := Texto

  oDoc:CheckSpelling()

  cText := oTexto:Text

  oDoc:Close(0)
  oWord:Quit()
  oTexto:=NIL
  oDoc:=NIL
  oWord:=NIL

  cText:=StrTran(cText,Chr(13),Chr(13)+Chr(10))  // No recuerdo por qué puse esta linea

  If !Empty(cText) // si cancelamos en el chequeo de ortografia, nos devuelve una cadena vacia
   Texto := cText
  Endif

Return Texto


No lo hago por defecto, sino con el botón derecho del campo memo añadiendo la opción de ortografía. (modificación de la clase mget.prg)

Pero me suceden dos cosas:

1- Solamente me corrige texto que este escrito en minúsculas, si esta en mayúsculas no hace la corrección, indica que es correcto.
2- En algunos puestos la ventana de ortografía no me la saca visible, hay que buscarla con alt+tabulador para hacerla visible.

He visto en la documentación de CheckSpelling() https://learn.microsoft.com/en-us/office/vba/api/word.document.checkspelling que por defecto ignora las mayúsculas pero no se como pasarle el parámetro para que no lo haga.

Agradecería alguna sugerencia.

Gracias a todos.
Saludos,
Regards,

Jose Luis Alepuz
joseluis@mancomputer.com
www.mancomputer.com
Garbi
 
Posts: 340
Joined: Wed Nov 02, 2005 3:28 pm

Re: Corrector ortográfico - Solucionado 1 parte

Postby Garbi » Wed Jan 11, 2023 12:50 pm

Para el que quiera usarlo, la forma de activar que te corrija la mayúsculas es:

Primero pones algo en minúsculas mal escrito y cuando te aparece la pantalla de Ortografía, elegimos opciones y desmarcamos la opción de "Omitir palabras en MAYÚSCULAS" y ya funciona para minúsculas y mayúsculas. He probado incluso reiniciando el ordenador y se queda desactivada la opción y sigue funcionando bien.

Lo de que la pantalla se quede oculta lo seguiré investigando. En todos los puestos tienen dos pantallas y creo que podría venir por ahí. Si averiguo algo lo pondré.

O se admiten sugerencias.

Gracias.
Saludos,
Regards,

Jose Luis Alepuz
joseluis@mancomputer.com
www.mancomputer.com
Garbi
 
Posts: 340
Joined: Wed Nov 02, 2005 3:28 pm

Re: Corrector ortográfico

Postby Jimmy » Thu Jan 12, 2023 1:09 am

hi,

as i can say CheckSpelling-Methode is "just" the Start Point
https://learn.microsoft.com/de-de/office/vba/api/word.document.checkspelling

you need to write a CLASS and include Method ::nextWord()
Code: Select all  Expand view  RUN
METHOD FwSpellChecker:checkSpelling( cString )
LOCAL nFirst, nLast, lCorrect, aSugg
LOCAL cWord := NIL

  ::reset()
  ::cString := cString
  lCorrect := .T.
  nFirst := 1
  nLast  := 1

  DO WHILE !Empty( cWord := ::nextWord( @nFirst, @nLast ) )
    IF ::oWord:checkSpelling( cWord )
      loop
    ENDIF
    aSugg := Array( 3 )
    aSugg[WRONGWORD]   := cWord
    aSugg[WORDPOS]     := nFirst
    AAdd( ::aSuggestions, aSugg )
  ENDDO

  IF NIL != ::aSuggestions
    lCorrect := .F.
  ENDIF
RETURN lCorrect


i do have a CLASS for Fivewin but it is based on Xbase++ Sample (copyright) so i can not post it
write me a private Email so i can help you
greeting,
Jimmy
User avatar
Jimmy
 
Posts: 1732
Joined: Thu Sep 05, 2019 5:32 am
Location: Hamburg, Germany

Re: Corrector ortográfico

Postby Garbi » Fri Jan 20, 2023 4:00 pm

Thanks, but that's how it works for me, the correction screens already work out fine when they start using it.
Saludos,
Regards,

Jose Luis Alepuz
joseluis@mancomputer.com
www.mancomputer.com
Garbi
 
Posts: 340
Joined: Wed Nov 02, 2005 3:28 pm


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 40 guests