Inicio > Visual Fox Pro, Visual Fox Pro (API de Windows) > Corrector ortográfico en Visual FoxPro con Microsoft Word

Corrector ortográfico en Visual FoxPro con Microsoft Word


Corrector otográfico

Crear un formulario en blanco
Agregar un boton (name : cmdCheckSpelling) y un editbox (name : edtTextToCheck)

Eventos a programar :

Ini del Fomulario

THIS.edtTextToCheck.VALUE = «Esste es un mensage con errores para poder mostrarr el ejemplo»

Destroy del Formulario

IF TYPE([goWord]) = [O]
IF TYPE([goWordDoc]) = [O]
goWordDoc.SAVED = .T.
goWordDoc.CLOSE
ENDIF
goWord.QUIT
ENDIF
RELEASE goWord, goWordDoc

Crear un metodo llamado findword , y poner el siguiente código

LOCAL lcPath, lcResult, lcFileName, llRetVal, lcCurDir, lnFileHand, lcWordPath

lcPath = SPACE(0)
lcResult = SPACE(128)
llRetVal = .F.

*!* Determinar el DIR. JUSTPATH() and ADDBS()
lcCurDir = SUBSTR(SYS(16,0),ATC([ ],SYS(16,0),2)+1)
lcCurDir = SUBSTR(lcCurDir,1,RAT([\],lcCurDir))

lcFileName = lcCurDir + SYS(3) + [.doc]

*!* Crea un archivo con la extensión. Doc
*!* Podría usar STRTOFILE() en VFP6

lnFileHand = FCREATE(lcFileName,0)
= FCLOSE(lnFileHand)

DECLARE INTEGER FindExecutable IN shell32 STRING @lcFilename, ;
STRING @lcPath , STRING @lcResult

*!* Determinar la asociación de archivos
IF FindExecutable(@lcFileName, @lcPath, @lcResult) > 32
lcWordPath = UPPER(SUBSTR(lcResult,1,LEN(ALLTR(lcResult))-1))
IF [WINWORD] $ lcWordPath
llRetVal = .T.
ENDIF
ENDIF
*!* Eliminar el archivo
ERASE (lcFileName)
RETURN llRetVal

Y por ultimo faltaria el codigo en el evento clik del boton.

IF TYPE([goWord]) # [O] && Comporbar si hay instancias de Word
IF !THISFORM.FindWord() && Localizando Word
MESSAGEBOX([Microsoft Word no está bien instalado o está incorrectamente registrado.],0,[Word Start-Up No se pudo])
RETURN .F.
ENDIF

*!* Cambia el mouse pointer para todos los controles del formulario
Thisform.SetAll(‘MOUSEPOINTER’,11)

PUBLIC goWord, goWordDoc && Variables publicas para Word y Document1 en Word.
goWord = CREATEOBJECT([WORD.APPLICATION]) && Crear Word
WITH goWord
.WINDOWSTATE = 0  && 0 = wdWindowStateNormal
goWordDoc = .Documents.ADD
ENDWITH

*!* Cambiar nueVamente el puntero del mouse
Thisform.SetAll(‘MOUSEPOINTER’,0)

ENDIF

WITH goWordDoc
.Content.TEXT = ALLTRIM(THISFORM.edtTextToCheck.VALUE)
.ACTIVATE
IF .SpellingErrors.COUNT > 0
.CHECKSPELLING
ELSE
=MESSAGEBOX([Spell check complete. No errors found],0,[Spell Check])
ENDIF
*!* Mantener oculto Word.
goWord.VISIBLE = .F.
THISFORM.edtTextToCheck.VALUE = .Content.TEXT
ENDWITH

  1. Marcos Tapia
    24 marzo 2011 a las 7:51 pm

    Excelente. Lo utilicé con Window XP y trabajó muy bien. Pero quisiera consultar los siguiente:
    1. Si hago click fuera de la ventana del corrector se me desaparece la ventana.
    2. Lo usé en Window 7 y la ventana del corrector se me pone en el fondo de todas las ventanas que esté usando.
    ¿Se podrán corregir estos problemas?

    • 5 abril 2013 a las 9:54 pm

      Para eso ya que ver como están definidos tus formularios ..

  2. Marcos Tapia
    30 marzo 2011 a las 1:26 pm

    Me dió excelente resultado en WindowXP pero al usarlo en WINDOW 7, la ventana del corrector se val fondo, detrás de todas las pantallas que tenga abierta.
    ¿Hay solución para esto?

    • 15 diciembre 2011 a las 12:43 pm

      Si aun lo necesitas me escribes y lo veo.

      Saludos
      Ricardo

  3. Claudia Moreno
    27 julio 2012 a las 1:45 pm

    Hola

    Escribir un texto con buena ortografía es muy importante para que las personas puedan captar la idea que quieres expresar. Quiero dejarles esta pagina http://www.peti5.com/correcciones en donde por un precio muy bajo, puedes encontrar freelance que corrigen textos. Espero que les sirva. Besos

  4. Gonzalo
    11 octubre 2012 a las 11:31 pm

    rahsuarez, como hago para que en seven no se vaya al fondo la ventana???..gracias

  1. No trackbacks yet.

Replica a rahsuarez Cancelar la respuesta