elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Realizar otra vez y dar el resultado del IF
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Realizar otra vez y dar el resultado del IF  (Leído 6,907 veces)
carlosuc99

Desconectado Desconectado

Mensajes: 42


Ver Perfil
Realizar otra vez y dar el resultado del IF
« en: 27 Enero 2013, 11:28 am »

Tengo este If:

Código
  1. If lights.Value(LightType.Landing) = True Then
  2.                Me.RichTextBox1.Text = "Landing Lights ON"
  3.            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 Desconectado

Mensajes: 9.822



Ver Perfil
Re: Realizar otra vez y dar el resultado del IF
« Respuesta #1 en: 27 Enero 2013, 11:51 am »

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:

Código
  1. If lights.Value(LightType.Landing) = true  Then Me.RichTextBox1.Text = "Landing Lights ON" else Me.RichTextBox1.Text = "Landing Lights OFF"

Código
  1. while not 0 = 1
  2.   If lights.Value(LightType.Landing) = true Then Me.RichTextBox1.Text = "Landing Lights ON" else Me.RichTextBox1.Text = "Landing Lights OFF"
  3. end while

Saludos


En línea

carlosuc99

Desconectado Desconectado

Mensajes: 42


Ver Perfil
Re: Realizar otra vez y dar el resultado del IF
« Respuesta #2 en: 27 Enero 2013, 13:14 pm »

Bueno, aquí tenéis más código:

Código
  1. Private Sub FlighInfo_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
  2.        Try
  3.            If lights.Value(LightType.Landing) = True Then
  4.                Me.RichTextBox1.Text = "Landing Lights ON"
  5.            End If
  6.        Catch ex As Exception
  7.  
  8.        End Try
  9.    End Sub
  10.    Private Sub RichTextBox1_TextChanged(sender As Object, e As EventArgs) Handles RichTextBox1.TextChanged
  11.  
  12.    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 Desconectado

Mensajes: 9.822



Ver Perfil
Re: Realizar otra vez y dar el resultado del IF
« Respuesta #3 en: 27 Enero 2013, 13:56 pm »

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:
Código
  1.    Private Sub FlighInfo_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
  2.            Try : If lights.Value(LightType.Landing) = True Then Me.RichTextBox1.Text = Me.RichTextBox1.Text & " " & "Landing Lights ON" : Catch : End Try
  3.    End Sub


Eso es la manera más sencilla, luego puedes tener un poco más de control sobre el asunto por ejemplo así:

Código
  1.  
  2.      Dim Lights_Count as int32 = 0 ' esto en las declaraciones, fuera de los subs
  3.  
  4.      Private Sub FlighInfo_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
  5.           Try : If lights.Value(LightType.Landing) = True Then Lights_Count +=1 : Add_Lights_ON() : _
  6.           Catch : End Try
  7.       End Sub
  8.  
  9.    private sub Add_Lights_ON()
  10.         Dim light_string as string = nothing
  11.         for each num in Lights_Count : light_string = light_string & " " & "Landing Lights ON" : NEXT
  12.         Me.RichTextBox1.Text = light_string
  13.    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 Desconectado

Mensajes: 1.842



Ver Perfil
Re: Realizar otra vez y dar el resultado del IF
« Respuesta #4 en: 27 Enero 2013, 14:33 pm »

Código
  1. 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:

Código
  1. RichTextBox1.Text += Environment.NewLine & "Landing Lights ON"
  2.  
En línea

carlosuc99

Desconectado Desconectado

Mensajes: 42


Ver Perfil
Re: Realizar otra vez y dar el resultado del IF
« Respuesta #5 en: 27 Enero 2013, 15:21 pm »

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 Desconectado

Mensajes: 1.842



Ver Perfil
Re: Realizar otra vez y dar el resultado del IF
« Respuesta #6 en: 27 Enero 2013, 16:02 pm »

Se me exploto el cerebro, ya vuelvo.
En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.822



Ver Perfil
Re: Realizar otra vez y dar el resultado del IF
« Respuesta #7 en: 27 Enero 2013, 16:13 pm »

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 Desconectado

Mensajes: 42


Ver Perfil
Re: Realizar otra vez y dar el resultado del IF
« Respuesta #8 en: 27 Enero 2013, 19:25 pm »

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 Desconectado

Mensajes: 101



Ver Perfil
Re: Realizar otra vez y dar el resultado del IF
« Respuesta #9 en: 27 Enero 2013, 21:20 pm »

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

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
como sacar otra toma de ono para otra tv?
Electrónica
davemirra 1 10,684 Último mensaje 19 Enero 2007, 20:59 pm
por ecri
CARGAR UNA PAGINA DENTRO DE OTRA UNA Y OTRA VEZ
PHP
bleyarkngel 0 4,578 Último mensaje 29 Junio 2009, 01:03 am
por bleyarkngel
copiar registros de una BD a otra BD en otra ubicación
Desarrollo Web
OssoH 2 3,823 Último mensaje 13 Julio 2010, 19:37 pm
por MinusFour
Duda sobre realizar o no realizar overclocking en mi processador.
Hardware
MonzterKuki. 4 6,009 Último mensaje 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 6,666 Último mensaje 1 Octubre 2014, 18:32 pm
por Shout
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines