In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

Bug en TEDIT

Foro de Xailer profesional en español
Responder
buzonjmartial
Mensajes: 100
Registrado: Vie Abr 10, 2009 11:02 pm

Bug en TEDIT

Mensaje 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.
Un Saludo,
Joaquín Martínez
ddupre
Mensajes: 329
Registrado: Lun Nov 12, 2007 3:53 pm

Re: Bug en TEDIT

Mensaje 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
buzonjmartial
Mensajes: 100
Registrado: Vie Abr 10, 2009 11:02 pm

Re: Bug en TEDIT

Mensaje 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.
Un Saludo,
Joaquín Martínez
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9246
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Re: Bug en TEDIT

Mensaje 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
Ignacio Ortiz de Zúñiga
[Equipo de Xailer / Xailer team]
https://www.xailer.com
buzonjmartial
Mensajes: 100
Registrado: Vie Abr 10, 2009 11:02 pm

Re: Bug en TEDIT

Mensaje 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,
Un Saludo,
Joaquín Martínez
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9246
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Re: Bug en TEDIT

Mensaje 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
Ignacio Ortiz de Zúñiga
[Equipo de Xailer / Xailer team]
https://www.xailer.com
buzonjmartial
Mensajes: 100
Registrado: Vie Abr 10, 2009 11:02 pm

Re: Bug en TEDIT

Mensaje por buzonjmartial »

Así funciona perfectamente !!

Ya cuando salga la actualización, quitaré ese código y listo.
Un Saludo,
Joaquín Martínez
Responder