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.