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
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?
Para eso ya que ver como están definidos tus formularios ..
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?
Si aun lo necesitas me escribes y lo veo.
Saludos
Ricardo
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
rahsuarez, como hago para que en seven no se vaya al fondo la ventana???..gracias