Cambiar color de las letras en un control TextBox

537 views
Skip to first unread message

integral

unread,
Jul 28, 2019, 1:14:24 AM7/28/19
to Comunidad de Visual Foxpro en Español

Que tal amigos :

Estoy tratando de cambiar el color de un mensaje de alerta contenido en in control Textbox ya sea en color Azul o Rojo según el Stock físico

Aquí muestro el código que estoy utilizando pero no cambia el color...

    IIF(Thisform.TextoStock.Value=">> Stock Insuficiente <<",Thisform.TextoStock.ForeColor=RGB(255,0,0),Thisform.TextoStock.ForeColor=RGB(0,0,255))

Algún colega que me pueda dar una idea o sugerencia sobre el tema.

Saludos,

INTEGRAL

ZeRoberto

unread,
Jul 28, 2019, 1:40:23 AM7/28/19
to publicesvfoxpro
Es en un grid o es un textbox suelto

Si es lo segundo, en el evento interactivechange le cambias el color

Saludos

Ze



--
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/fe83276b-8492-4a40-ac35-b8a0f64968dd%40googlegroups.com.

Fidel Charny

unread,
Jul 28, 2019, 8:57:16 AM7/28/19
to Comunidad de Visual Foxpro en Español
Supongo que el valor del cuadro de texto lo introduce un método e evento del formulario.
Deberías usar el método ProgrammaticChange del texbox así:
this.forecolor = IIF(TRIM(This.text) == ">> Stock Insuficiente <<" , RGB(255,0,0) , RGB(0,0,255) )

integral

unread,
Jul 28, 2019, 5:02:48 PM7/28/19
to Comunidad de Visual Foxpro en Español

Amigo FIDEL :

Te muestro como estoy tratando de establecer el color del mensaje contenido en un TextBox

Boton Ultimo :

...
...

Thisform.TextoStock.Value = ALLTRIM(Mens_Stock)                  && Captura el Mensaje del Stock grabado en la tabla     

WAIT WINDOW "MENSAJE : " + Thisform.TextoStock.Value TIMEOUT 1

Thisform.TextoStock.Forecolor = IIF(ALLTRIM(Thisform.TextoStock.Value) = ">>Stock-Insuficiente<<" , RGB(255,0,0) , RGB(0,0,255) )  && Modificado

Le he quitado los espacios al mensaje y aun así no funciona

El código que muestras me da error en : THIS.TEXT..

Que faltara corregir...

Agradezco vuestra ayuda..

Saludos,

INTEGRAL

HernanCano

unread,
Jul 29, 2019, 12:54:16 AM7/29/19
to Comunidad de Visual Foxpro en Español
En los tres renglones de comendos VFP que muestras no hay "This.Text"

¿Nos estás mostrando lo justo para descubrir el error?


ThisForm.TextoStock.Value = alltrim(Mens_Stock)    && Captura el Mensaje del Stock grabado en la tabla     
wait window "MENSAJE: " + ThisForm.TextoStock.Value timeout 1
ThisForm.TextoStock.ForeColor = iif(alltrim(ThisForm.TextoStock.Value)=">>Stock-Insuficiente<<", RGB(255,0,0), RGB(0,0,255) )  && Modificado

Propuesta:
Si cambias la última instrucción por 

ThisForm.TextoStock.ForeColor = iif( upper("Insuficiente") $ upper(alltrim(ThisForm.TextoStock.Value)), RGB(255,0,0), RGB(0,0,255) )

¿te funciona mejor?

Luis suescún

unread,
Jul 29, 2019, 6:32:24 AM7/29/19
to publice...@googlegroups.com
Deberías mostrar como se actualiza el texto del textbox pq es posible que no coincida con la cadena de comparación que tienes en la función de desicion , y ademas responder si si lo estás haciendo desde el método interactivechange fado que debería variar por cada registro que se muestra .
Te lo están diciendo los colegas que son bien aventajados en estos menesteres ...

Saludos 

--
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Message has been deleted

Zarlu

unread,
Jul 29, 2019, 10:09:15 AM7/29/19
to Comunidad de Visual Foxpro en Español
Buenos días Integral!

Éste código funciona bien:
Thisform.text1.ForeColor=Iif(Thisform.text1.Value>0,RGB(0,0,255),RGB(255,0,0))
(Inclusive lo probé con ">> Stock Insuficiente <<")

Que es similar al que estas usando:
IIF(Thisform.TextoStock.Value=">> Stock Insuficiente <<",Thisform.TextoStock.ForeColor=RGB(255,0,0),Thisform.TextoStock.ForeColor=RGB(0,0,255))
(Pero elimina los "Thisform.TextoStock.ForeColor=" dentro del IIF)

Tambien toma nota de lo que dice Hernan Cano:
En los tres renglones de comendos VFP que muestras no hay "This.Text".
Pudiera ser que sea un error anterior y no que no llegue a ejecutarse la línea de cambio de color.

El IIF en Forecolor no manda error simplemente no se ejecuta si esta mal la sintaxis.´

Revisa letra a letra tu sintaxis y las mayúsculas/minúsculas del texo validado.
Aplica Alltrim() a Thisform.TextoStock.Value para la comparación

Saludos
Suerte

zarlu
Chetumal, Quintana Roo, México

Zarlu

unread,
Jul 29, 2019, 12:02:58 PM7/29/19
to Comunidad de Visual Foxpro en Español
ACLARACION  a mi mensaje anterior.
 
(una disculpa por no leer con atención) 
 
El mensaje de error de "This.Text.."es porque ejecutaste tal cual el código que te sugirió Fidel Charny.
 
El usó "This.." suponiendo que la validacion se hace en un método del mismo control, si es desde otro control
recuerda que debes hacer referencia completa a donde se encuentra el control "Thisform.text1.text...." o "Thisform.text1.Value.."
 
En tu código original falta el control que obtendrá el valor resultado del cumplimiento de la condición del IIF y que ejecutará el cambio
Algo así: Thisform.text1.ForeColor=IIF....
 
O si prefieres seguir con tu código original prueba esto:
x=IIF(Thisform.text1.Value=">> Stock Insuficiente <<","Thisform.text1.ForeColor=RGB(0,0,255)","Thisform.text1.ForeColor=RGB(255,0,0)")&&nota las comillas
&x

integral

unread,
Jul 29, 2019, 4:50:55 PM7/29/19
to Comunidad de Visual Foxpro en Español

Gracias a todos los amigos que me ayudaron a resolver el problema...

Tema Resuelto...

Saludos

INTEGRAL


El domingo, 28 de julio de 2019, 0:14:24 (UTC-5), integral escribió:

HernanCano

unread,
Jul 29, 2019, 7:02:32 PM7/29/19
to Comunidad de Visual Foxpro en Español
Alakazim, alakazam !!!!!

Reply all
Reply to author
Forward
0 new messages