Página 1 de 1
Bug en TEDIT
Publicado: Mié Nov 27, 2019 12:54 pm
por buzonjmartial
Buenos días,
La clase Tedit tiene un bug que me ha vuelto loco. Se puede probar en el editor de Xailer o en cualquier aplicación hecha con Xailer.
Si se teclea en modo Insert áéíóú funciona correctamente, si se pulsa la tecla INSERT en el teclado y se pone el cursor en modo sobreescribir,
ya no salen los acentos.
Re: Bug en TEDIT
Publicado: Mié Nov 27, 2019 8:46 pm
por ddupre
Estimado,
Lo he probado en el editor de Xailer 6.2.0 y no logro reproducir el bug, tal vez sea un problema del font que utilizas para editar, yo edito con ANSI Fixedsys y, si bien esos caracteres no se ven en esta fuente, nunca dejan de verse los tíldes.
Saludos
Daniel
Re: Bug en TEDIT
Publicado: Mié Nov 27, 2019 9:39 pm
por buzonjmartial
Buenas tardes,
He dicho en un control Tedit no editando el prg.
Ve al menú Herramientas - Opciones generales - Directorios - Xailer y en el tedit donde tienes que poner las carpetas donde está Xailer, escribe ahí y lo comprobarás.
Re: Bug en TEDIT
Publicado: Jue Nov 28, 2019 10:17 am
por ignacio
Buenos días,
El problema se corrige comentando unas pocas líneas de TEdit:WmKeyDown. Le incluyo el código:
Código: Seleccionar todo
METHOD WMKeyDown( nKey, nFlags, hWnd ) CLASS XEdit
LOCAL nStart, nEnd
IF nKey == VK_INSERT .AND. ! lGetKeyState( VK_CONTROL ) .AND. ! lGetKeyState( VK_SHIFT )
::oForm:SendMsg( WM_CHANGEUISTATE, MakeLong( UIS_CLEAR, UISF_HIDEFOCUS ) )
IF ::lInsert := !::lInsert
CreateCaret( ::Handle,, 0, -1 )
ELSE
CreateCaret( ::Handle,, -1, -1 )
ENDIF
ShowCaret( ::Handle )
RETURN Nil
ENDIF
// IF ! ::lInsert
// ::GetSel( @nStart, @nEnd )
// IF nStart == nEnd .AND. nKey != VK_BACK .AND. ( nKey == 32 .OR. ! Empty( VKeyToAscii( nKey, nFlags ) ))
// ::SetSel( nStart, nStart + 1 )
// ENDIF
// ENDIF
RETURN ::Super:WMKeyDown( nKey, nFlags, hWnd )
Estará solucionado en la próxima versión de Xailer. Gracias por su colaboración.
Un saludo
Re: Bug en TEDIT
Publicado: Jue Nov 28, 2019 12:37 pm
por buzonjmartial
Buenos días Ignacio,
He heredado la clase de esta manera:
CLASS TEdit FROM XEdit
Y ahí he puesto el código del método WMKeyDown.
Sigue el problema, en modo sobreescribir NO aparecen los acentos.
No sé si hay que hacer algo más.
Gracias,
Re: Bug en TEDIT
Publicado: Jue Nov 28, 2019 1:29 pm
por ignacio
Hola,
Mala idea me temo. La línea RETURN ::Super:WMKeyDown( nKey, nFlags, hWnd ) vuelve a llamar al código de la clase XEdit.
Si no quiere tocar la clase original, puede hacer lo siguiente: Cambie la última línea por:
RETURN ::TStdControl:WMKeyDown( nKey, nFlags, hWnd )
Saludos
Re: Bug en TEDIT
Publicado: Jue Nov 28, 2019 1:45 pm
por buzonjmartial
Así funciona perfectamente !!
Ya cuando salga la actualización, quitaré ese código y listo.