Problema con TextBox y la Barra Espaciadora

55 views
Skip to first unread message

integral

unread,
Mar 10, 2026, 10:49:20 AM (22 hours ago) Mar 10
to Comunidad de Visual Foxpro en Español
Que tal amigos del Foro

Muy Buenos Dias

Recurrido a ustedes por lo siguiente : 

Como puedo cambiar el Texto de un Textbox con la Barra Espaciadora

La idea es al momento se ubicarse en dicho control TextBox el usuario mediante la Barra Espaciadora pueda elejir una opcion pre establecida
algo parecido a una funcion que existia en Foxpro para D.O.S. 2.6 y hacia justamente ese proceso..

Ej. Moneda :   Soles o Dolares o Viceversa.

Tengo el siguiente código en el evento KeyPress de un control TextBox pero no realiza ninguna seleccion. 
 
LPARAMETERS nKeyCode, nShiftAltCtrl
Local lc_LaTecla, lc_Divisa
lc_Divisa = Alltrim(Thisform.TxtMoney.Value)
lc_LaTecla = CHR(nKeyCode)  

IF INLIST(LASTKEY(), 7)
 DO CASE
    CASE lc_Divisa = "SOLES"
         Thisform.TxtMoney.Value = "DOLARES"
    CASE lc_Divisa = "DOLARES"
         Thisform.TxtMoney.Value = "SOLES"
 ENDCASE
 RETURN
ENDIF

IF !lc_LaTecla $ "ABCDEFGHIJKLMNÑOPQRSTUVWXYZ abcdefghijklmnñopqrstuvwxyz "
   Nodefault
ENDIF

RETURN

Agradezco sus comentarios y sugerencias.
Saludos,

Integral

Zarlu

unread,
Mar 10, 2026, 12:18:47 PM (21 hours ago) Mar 10
to Comunidad de Visual Foxpro en Español
Buenos días Integral!

Te adjunto una sugerencia.
Vas a tener que validar otros valores de teclas para poder salir del text.

Suerte
zarlu
Chetumal, Quintana Roo, México
form1.2SCT
form1.2scx

Alberius RosenCruz

unread,
Mar 10, 2026, 6:17:12 PM (15 hours ago) Mar 10
to Comunidad de Visual Foxpro en Español
POR QUE NO USAS INTERACTIVE CHANGE?

integral

unread,
1:16 AM (8 hours ago) 1:16 AM
to Comunidad de Visual Foxpro en Español
Que tal Colega ZARLU

Muy Buenas Noches

Aqui te muestro el codigo con algunas variantes, Muestra con la Barra Espaciadora SOLES mas no DOLARES y deja un espacio a la izquierda.

Local lcTecla, lc_Divisa                       

lc_Divisa = Alltrim(Thisform.TxtMoney.Value)       
lcTecla = Chr(nKeyCode)
 
IF INLIST(LASTKEY(),13,127,7,19,4)
     return
endif

IF nKeyCode = 32  
 DO CASE
    CASE This.Tag = "SOLES"          
         Thisform.TxtMoney.Value = "DOLARES"
         Thisform.Refresh()

    OTHERWISE
         This.Tag = "DOLARES"             <-- No Funciona
         Thisform.TxtMoney.Value = "SOLES"
         Thisform.Refresh()

 ENDCASE
ENDIF

RETURN

Utilizando tu código muestra los 2 textos, pero deja un espacio a la izquierda...  Ver imagen.

RESULTADO_ADICIONAL.png

Agradezco tus comentarios y sugerencias.

Saludos,

Integral
Reply all
Reply to author
Forward
0 new messages