Autor
|
Tema: Realizar otra vez y dar el resultado del IF (Leído 7,478 veces)
|
carlosuc99
Desconectado
Mensajes: 42
|
Tengo este If: If lights.Value(LightType.Landing) = True Then Me.RichTextBox1.Text = "Landing Lights ON" End If
El valor lights.Value(LightType.Landing) cambia. El problema que tengo es que cuando ejecuta el If me pone en el RichTextBox1 el texto. Si cambio el valor de la variable de ejecución del If el texto que ya escribió sigue escrito en el If. Pero si vuelvo a poner el valor de la variable de ejecución del If en True. Como ya escribió el texto anteriormente no lo vuelve a poner. Cómo puedo hacer para que si la variable vuelve a cambiar a True me ponga otra vez el texto?
|
|
|
En línea
|
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.866
|
Perdona pero no se entiende muy bien la explicación que dás, y muestras muy poco código, el problema no debe estar en el IF sinó en el modo en que lo empleas en tú código... si la comprobación solo se ejecuta una vez, obviamente no va a volver a cambiar de valor una segunda vez después de haberse comprobado ya... Quizás esto te sirva: If lights.Value(LightType.Landing) = true Then Me.RichTextBox1.Text = "Landing Lights ON" else Me.RichTextBox1.Text = "Landing Lights OFF"
while not 0 = 1 If lights.Value(LightType.Landing) = true Then Me.RichTextBox1.Text = "Landing Lights ON" else Me.RichTextBox1.Text = "Landing Lights OFF" end while
Saludos
|
|
|
En línea
|
|
|
|
carlosuc99
Desconectado
Mensajes: 42
|
Bueno, aquí tenéis más código: Private Sub FlighInfo_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick Try If lights.Value(LightType.Landing) = True Then Me.RichTextBox1.Text = "Landing Lights ON" End If Catch ex As Exception End Try End Sub Private Sub RichTextBox1_TextChanged(sender As Object, e As EventArgs) Handles RichTextBox1.TextChanged End Sub
Si yo pongo lights.Value(LightType.Landing) en true, en el RichTextBox1 me pone "Landing Lights ON" si yo pongo lights.Value(LightType.Landing) en false en el RichTextBox1 sigue poniendo "Landing Lights ON". Hasta aquí todo BIEN. Lo que yo quiero es que si vuelvo a poner lights.Value(LightType.Landing) en true. No me sobreescriba sobre el código anterior. Si no que me mantenga el código anterior y añada más. Ej: En el RichTextBox1 me pone "Landing Lights ON". Pues si lo vuelvo a poner en true me añada otro "Landing Lights ON" al que ya hay quedando: "Landing Lights ON Landing Lights ON". Si lo vuelvo a poner en false y luego otra vez en true me añada otro Landing Lights ON a los dos que ya hay.
|
|
|
En línea
|
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.866
|
Si el texto del Rich siempre es el mismo y solo lo cambias para añadir más "lights ON", entonces es tán sencillo como AÑADIR el "landing lights ON" en lugar de REEMPLAZAR como estabas haciendo. Ejemplo: Private Sub FlighInfo_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick Try : If lights.Value(LightType.Landing) = True Then Me.RichTextBox1.Text = Me.RichTextBox1.Text & " " & "Landing Lights ON" : Catch : End Try End Sub
Eso es la manera más sencilla, luego puedes tener un poco más de control sobre el asunto por ejemplo así: Dim Lights_Count as int32 = 0 ' esto en las declaraciones, fuera de los subs Private Sub FlighInfo_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick Try : If lights.Value(LightType.Landing) = True Then Lights_Count +=1 : Add_Lights_ON() : _ Catch : End Try End Sub private sub Add_Lights_ON() Dim light_string as string = nothing for each num in Lights_Count : light_string = light_string & " " & "Landing Lights ON" : NEXT Me.RichTextBox1.Text = light_string end sub
Es lo mismo pero, la segunda manera te puede ayudar a añadir más cosas o en fín... tener más control sobre el string. PD: Los codes los he hecho a mano, pero creo que no hay error de sintaxis. Saludos.
|
|
« Última modificación: 27 Enero 2013, 14:00 pm por EleKtro H@cker »
|
En línea
|
|
|
|
$Edu$
Desconectado
Mensajes: 1.842
|
RichTextBox1.Text += " Landing Lights ON"
Solo cambia eso y funciona. Pero tal vez tienes el richtexbox1 amplio, es decir multilinea y quieres hacer que cada linea nueva de "Landing lights on" quede debajo asi que en ese caso cambias por esto otro: RichTextBox1.Text += Environment.NewLine & "Landing Lights ON"
|
|
|
En línea
|
|
|
|
carlosuc99
Desconectado
Mensajes: 42
|
Ante todo gracias,
@$Edu$ y @EleKtro H@cker. Vuestros códigos realizan lo mismo. Pero sigue sin ser lo que quiero.
Esto lo que hace es repetir varias veces el "Landing Lights ON" cuando es true y se procesa el if. Pero yo no quiero eso.
Lo que yo quiero es que cada vez que yo pongo el true y se procese el IF. Solo se ponga el Landing Lights ON una vez. Pero si yo lo pongo en false y luego lo vuelvo a poner en true, quiero que me añada una vez más el Landing Lights ON a lo que ya había. Ej: Si yo lo pongo en true. En el RichtTextBox1 me pone "Landing Lights ON", lo pongo en false, a continuación se vuelve a poner en true, cuando se vuelva a poner en true quiero que añada 1 vez más el Landing Lights ON quedando así: "Landing Lights ON Landing Lights ON", si lo vuelvo a poner en false y luego lo vuelvo a poner en true se añade otro quedando así: "Landing Lights ON Landing Lights ON Landing Lights ON"
|
|
|
En línea
|
|
|
|
$Edu$
Desconectado
Mensajes: 1.842
|
Se me exploto el cerebro, ya vuelvo.
|
|
|
En línea
|
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.866
|
carlosuc99,
Me he leido 2 veces tú último comentario pero por más vueltas que le doy, no le encuentro diferencia,
Porque dejando a un lado el "False", cada vez que el valor es "true", se debe agregar un "lights ON", ¿Correcto?, pues eso es lo que hacen los codes que te hemos proporcionado :-/
¿O quizás quieres esto?:
1. inicias la APP 2. haces: off, on, off. on. (el valor sería "lights on lights on") 3. luego haces por ejemplo: off, on. ¿y aquí entonces quieres que el contador reinicie y que el valor sólo séa "lights on" (una vez)?
¿Eso es lo que quieres?
EDITO: Bueno la verdad es que no le encuentro sentido si es eso, porque habría que marcar algún tipo de pauta, y pausas... es decir, marcar un margen de tiempo.
|
|
« Última modificación: 27 Enero 2013, 16:15 pm por EleKtro H@cker »
|
En línea
|
|
|
|
carlosuc99
Desconectado
Mensajes: 42
|
Vamos a ver, a lo mejor me explico mal.
Qué pasa con los códigos que me dejasteis?
Pongo la variable en true. Y en el RichTextBox1 se escribe Landing Lights ON, pero no es que se escriba una vez si no que cuando está seleccionado se está escribiendo continuamente. No es exacto pero mientras está seleccionado creo que se escriben 3 Landing Lights ON por segundo. Y claro eso hace que se escriban muchos mientras está seleccionado.
Yo no quiero eso. Quiero que cuando se selecciono SOLO SE ESCRIBA UNA VEZ. Y si luego lo desseleccionas y lo vuelves a poner en true. Se AÑADA UNO MAS AL QUE YA HABIA.
Me entendeis? A lo mejor os tengo que poner un video de lo que hace ahora.
PD: Umm, me acabo de dar cuenta. El valor de la variable del IF, la cojo de otra aplicación, en concreto de Flight Simulator. Lo cojo gracias a una libería. A lo mejor es porque lo actualiza continuamente y la variable se está poniendo true cada vez que actualiza. En este caso como lo puedo arreglar? Si se puede hacer que lo inserte cuando el valor de la variable cambie me valdría. Es más, creo que sería mejor.
|
|
« Última modificación: 27 Enero 2013, 19:37 pm por carlosuc99 »
|
En línea
|
|
|
|
TomaSs
Desconectado
Mensajes: 101
|
Es que, como puedo comprobar, utilizas un timer para comprobarlo en todo momento. Lo que debes hacer, debajo del if poner el enabled del timer a false, y cuando vuelves a colocar la variable del if en true, pues pones el timer en true. De esta manera solo te lo escribirá la primera vez y no seguirá comprobando con el timer. Pero de todos modos, creo que eso que estás intentando hacer se podrá hacer directamente con los eventos adecuados. No se decirte con cuales ya que no se de que manera cambias el valor de la variable del if, pero bueno... Espero que te sirva
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
como sacar otra toma de ono para otra tv?
Electrónica
|
davemirra
|
1
|
10,856
|
19 Enero 2007, 20:59 pm
por ecri
|
|
|
CARGAR UNA PAGINA DENTRO DE OTRA UNA Y OTRA VEZ
PHP
|
bleyarkngel
|
0
|
4,672
|
29 Junio 2009, 01:03 am
por bleyarkngel
|
|
|
copiar registros de una BD a otra BD en otra ubicación
Desarrollo Web
|
OssoH
|
2
|
4,001
|
13 Julio 2010, 19:37 pm
por MinusFour
|
|
|
Duda sobre realizar o no realizar overclocking en mi processador.
Hardware
|
MonzterKuki.
|
4
|
6,395
|
3 Octubre 2011, 22:19 pm
por sagrat
|
|
|
Multiplicar 2 cedenas y poner el resultado en otra cadena (lenguaje C)
« 1 2 »
Programación C/C++
|
NOB2014
|
10
|
7,206
|
1 Octubre 2014, 18:32 pm
por Shout
|
|