https://foro.gambas-es.org/viewtopic.php?f=1&t=1823
-----------------------------------
Invitado
Jueves, 18 Agosto 2011, 21:01

Bug O Error Con Key.Text Y Gb.qt / Gb.qt.ext (solucionado)
-----------------------------------
Hi!!

Bueno, estoy haciendo un pequeño editor de HTML tipo Kompozer pero[i] más sencillo[/i]... Y estoy utilizando un componente llamado "Editor" que depende gb.qt y gb.qt.ext

Al imprimir Key.text imprime [b]vacío[/b]. Sin embargo Key.Code si imprime el código correspondiente (que no es lo que quiero)

¿Hago algo mal? ¿Existe forma de pasar ese 65 a una "a" de forma automática?

PD: No me sirve otro componente porque requiero resaltar el código fuente :)


** Se me olvida **
Gambas 2.21 bajo Linux Mint debian


-----------------------------------
Invitado
Jueves, 18 Agosto 2011, 23:26

Re: Bug O Error Con Key.Text Y Gb.qt / Gb.qt.ext
-----------------------------------
Lo encontré.. bueno.. San google lo encontró en un PDF, pues parece que en este foro nadie lo ha nombrado aún

[code linenumbers=false syntax=gambas]
PRINT Chr(65) 'Retorna A
[/code]


-----------------------------------
Shell
Viernes, 19 Agosto 2011, 00:12

Re: Bug O Error Con Key.Text Y Gb.qt / Gb.qt.ext
-----------------------------------
Me perdí con lo de html. Pero lo del carácter si lo conocía.
Cuando tengas que imprimir caracteres no ascii (como la ñ) 
puedes encontrarte otro problema, fácil de solucionar. ;-)


-----------------------------------
fabianfv
Viernes, 19 Agosto 2011, 02:13

Re: Bug O Error Con Key.Text Y Gb.qt / Gb.qt.ext
-----------------------------------
[quote]
** Se me olvida **
Gambas 2.21 bajo Linux Mint debian
[/quote]
Bien, si además usás Gnome, se trata de un bug que ya fue solucionado (si mal no recuerdo). Deberías instalar Gambas 2.23


-----------------------------------
Invitado
Viernes, 19 Agosto 2011, 10:57

Re: Bug O Error Con Key.Text Y Gb.qt / Gb.qt.ext
-----------------------------------
Acabo de actualizar a 2.23, pero sigue ocurriendo lo mismo.. No imprime nada.
Mi solución tampoco funciona, pues al apretar ALT o BACKSPACE peta por todos lados..

[strike]¿Se les ocurre alguna solución o modo de instalar gambas3 en debian o algo?[/strike]


Me quedaré con esto:
[code linenumbers=false syntax=gambas]
  DIM sLetra AS String = ""

  TRY sLetra = Chr(Key.Code)
  
  IF NOT ERROR THEN 
    PRINT sLetra
  END IF
[/code]


-----------------------------------
Shell
Viernes, 19 Agosto 2011, 12:10

Re: Bug O Error Con Key.Text Y Gb.qt / Gb.qt.ext
-----------------------------------
Pásanos parte del código para poder probarlo.O por lo menos la parte conflictiva. ;-)


-----------------------------------
Invitado
Viernes, 19 Agosto 2011, 12:59

Re: Bug O Error Con Key.Text Y Gb.qt / Gb.qt.ext
-----------------------------------
[code linenumbers=false syntax=gambas]
PUBLIC SUB TextEdit1_KeyRelease()
 DIM sLetra AS String = ""


  'OPCIÓN A
  'Esto NO imprime la letra
  PRINT "La letra introducida es: " & Key.Text
 
 
 'OPCIÓN B
 'Si se introduce TAB o BACKSPACE no hace NADA
 TRY sLetra = Chr(Key.Code)
 
 IF NOT ERROR THEN
   PRINT sLetra 'Para el a y A son 65 (siempre imprime mayus)
 END IF
 
 
END
[/code]


-----------------------------------
fabianfv
Viernes, 19 Agosto 2011, 16:15

Re: Bug O Error Con Key.Text Y Gb.qt / Gb.qt.ext
-----------------------------------
[quote user="BrunoIV" post="10700"][code linenumbers=false syntax=gambas]
PUBLIC SUB TextEdit1_KeyRelease()
 DIM sLetra AS String = ""


  'OPCIÓN A
  'Esto NO imprime la letra
  PRINT "La letra introducida es: " & Key.Text
 
 
 'OPCIÓN B
 'Si se introduce TAB o BACKSPACE no hace NADA
 TRY sLetra = Chr(Key.Code)
 
 IF NOT ERROR THEN
   PRINT sLetra 'Para el a y A son 65 (siempre imprime mayus)
 END IF
 
 
END
[/code][/quote]

Bueno, ahora sí podemos hacer algo más para ayudar.

[b][i]Opción A[/i][/b]: recién caigo en la cuenta de que estás usando KeyRelease. Deberías usar KeyPress, ya que [b]al momento en que se produce el evento KeyRelease, Key.Text ya no está disponible[/b] (algo que es lógico). [b]Con KeyPress podés verificar la entrada del usuario antes de que el cambio impacte en el control. Si quisieras verificar el contenido de un control de texto después de que el cambio impactó en el control deberías usar el evento Change[/b].

[b][i]Opción B[/i][/b]: TAB y BACKSPACE son caracteres no imprimibles y por ello es lógico que Key.Text sea una cadena vacía.

Nota: en tu mensaje inicial decís que estás usando el control Editor para poder resaltar la sintaxis, pero tu código nos dice que el control del que estás hablando es un TextEditor.


-----------------------------------
Invitado
Viernes, 19 Agosto 2011, 20:32

Re: Bug O Error Con Key.Text Y Gb.qt / Gb.qt.ext
-----------------------------------
Gracias favian, ya está.. Era el evento KeyPress..

Respecto a lo de editor, es porque para mostrar mi "problema" hice las pruebas en un TextEdit, pero voy a utilizarlo en el editor... Porque aparte de resaltar el código estoy haciendo para que las etiquetas se completen solas (por eso capturo la entrada por letras), aunque alomejor lo hago de otro modo y no capturo todas las letras, sinó solo el "<" y ">", pero eso ya me apaño yo solo..


Saludos


