Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Eleкtro

#9171
De la manera que me indicas, inactivandolo antes del case y activandolo en la etiqueta se consigue una mejora pero sigue habiendo problemas, ahora el tooltip sólo se muestra cuando la considión se cumple y se sigue mostrando si no disminuyo el valor, es decir, si no clicko en la flecha "abajo" del numericupdown.


Al final he tenido que hacer un timer para solucionarlo del todo, aquí dejo la solución:

Código (vbnet) [Seleccionar]
   Private Sub ComboBox_Measure_SelectedIndexChanged(sender As Object, e As EventArgs) Handles _
       ComboBox_Measure.SelectedIndexChanged, _
       NumericUpDown_Time.ValueChanged

       Select Case ComboBox_Measure.SelectedIndex
           Case 0
               ' Seconds
               Time_Out = (Convert_Time(NumericUpDown_Time.Value, S, MS))
               Time_Measure = S
           Case 1
               ' Minutes
               If NumericUpDown_Time.Value >= 35793 Then NumericUpDown_Time.Value = 35792 : GoTo ToolTip
               Time_Out = (Convert_Time(NumericUpDown_Time.Value, M, MS))
               Time_Measure = M
           Case 2
               ' Hours
               If NumericUpDown_Time.Value >= 597 Then NumericUpDown_Time.Value = 596 : GoTo ToolTip
               Time_Out = (Convert_Time(NumericUpDown_Time.Value, H, MS))
               Time_Measure = H
           Case 3
               ' Days
               If NumericUpDown_Time.Value >= 25 Then NumericUpDown_Time.Value = 24 : GoTo ToolTip
               Time_Out = (Convert_Time(NumericUpDown_Time.Value, H, MS)) * 24
               Time_Measure = H
           Case 4
               ' Weeks
               If NumericUpDown_Time.Value >= 4 Then NumericUpDown_Time.Value = 3 : GoTo ToolTip
               Time_Out = (Convert_Time(NumericUpDown_Time.Value, H, MS)) * 168
               Time_Measure = H
       End Select

       Exit Sub

ToolTip:
       Dim ToolTips_Timer As New Timer
       ToolTips_Timer.Interval = 1500
       AddHandler ToolTips_Timer.Tick, AddressOf ToolTips_Timer_Tick
       ToolTip_Form.Show("Max value", Me.NumericUpDown_Time, ToolTips_Timer.Interval)
       ToolTips_Timer.Start()

   End Sub


Código (vbnet) [Seleccionar]
  Private Sub ToolTips_Timer_Tick(sender As Object, e As EventArgs)
       ToolTip_Form.RemoveAll()
       sender.stop()
   End Sub
#9172
Cita de: $Edu$ en 24 Marzo 2013, 16:19 PM
Pero esa linea que pones, se tiene que generar en el evento que has dejado, y ese evento no es cuando pasas el mouse por arriba, es cuando haces click, o me equivoco? Con solo pasar el mouse no tendria que cambiar nada, no se ejecutaria nada.

Ahí está el problema, yo provoco que aparezca el tooltip sobre el control cuando de alguna manera el número séa mayor de "X", ya séa haciendo click o escribiendo dentro, pero luego ya no debería mostrarse más...

De todas formas ya está, me sirvió la idea que tuviste Edu, usando otro método antes del Case:
ToolTip1.Show("", Me.NumericUpDown_Time, 0)
No sé si eso será muy correcto, pero desde luego ahora funciona como debe, no se sigue mostrando el tooltip.


Gracias

Slaudos.

RECTIFICO, SE SIGUE MOSTRANDO, YA NO SÉ QUE DEBO HACER.
#9173
@$Edu$

Si pregunto es porque no puedo encontrar el fallo o el error así que no puedo estar 100% seguro, pero por otro lado te aseguro que no tengo ningún evento asociado al ToolTip u otros eventos a esos controles ni nada extraño,
el único trozo de código donde uso el Tooltip es el que he mostrado, una sola línea xD.

Si el ToolTip sale cuando paso el mouse por el control, es porque lo especifico como parámetro aquí:
Código (vbnet) [Seleccionar]
ToolTip1.Show("Max value", Me.NumericUpDown_Time, 1500)

EDITO: El ToolTip lo agrego desde el designer, y los atributos del ToolTip son los que se usan por defecto (Aunque he probado a modificarlos..).

:(
#9174
Cita de: Xwatmin en 24 Marzo 2013, 15:50 PMSi puedo hacer algo que esté en mi mano, por favor dimelo.

@Xwatmin

Con que te asegures de pasar por tu bandeja de mensajes privados del foro para leer mi MP me es suficiente xD.

Para eso estamos,
Saludos.
#9175
No te preocupes DonVidela, cualquier comentario es bien recibido.

Pero no es como comentas, sólo llamo al tooltip cuando se cumple la condición, y antes de la etiqueta del ToolTip está la instrucción "Exit Sub" precísamente para que no suceda lo que comentas.

En resumen ese tooltip no se muestra siempre, se muestra cuando una de las condiciones se cumple (Lo he comprobado, hasta aquí todo bien), el problema es que después de mostrarse por primera vez, se sigue mostrando SIEMPRE aunque no se den las condiciones, ya puedo tratar de ocultarlo o desactivarlo o "disposarlo", pero no conseguiré nada porque se sigue mostrando cuando coloco el puntero del mouse encima del numericupdown, dándome por cu... xD

>:(

Un saludo!
#9176
.NET (C#, VB.NET, ASP) / Re: Duda con timer
24 Marzo 2013, 15:37 PM
Cita de: Audioslave™ en 23 Marzo 2013, 08:49 AM
Tengo mi codigo dentro de un timer, lo que hace es cada segundo mover un picturebox  en linea recta como si fuera un coche....pero yo necesito que despues de X segundos vuelva a ejecutarse nuevamente el codigo para que movilize a otro picturebox

Se me ocurre que podrías modificar el atributo "TAG" del timer para especificar (en modo de string) e identificar el control que quieres mover.

Aquí tienes un ejemplo que acabo de hacer, por si te sirve, aunque en lugar de usar el tag para especificar el control, lo hago para especificar la dirección (me aburría xD), puedes ajustarlo a tus necesidades...



Código (vbnet) [Seleccionar]
Public Class Form1

   ' Añade 1 button y 2 picturebox al form

   Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
       MoveControl(PictureBox1, Direction.Up, 1, 2000)
       While StartMove.Enabled : Application.DoEvents() : End While
       MoveControl(PictureBox2, Direction.Up, 200, 10000)
   End Sub

#Region " Move controls "

   Dim ControlToMove As Control
   Dim StartMove As New Timer
   Dim EndMove As New Timer

   Public Enum Direction
       Up = 0
       Down = 1
       Left = 2
       Right = 3
   End Enum

   Public Sub MoveControl(ByVal Control As Control, _
                          ByVal Direction As Direction, _
                          ByVal Interval As Int16, _
                          ByVal TimeOut As Int16)

       ControlToMove = Control

       StartMove.Tag = Direction

       AddHandler StartMove.Tick, AddressOf StartMove_Tick
       AddHandler EndMove.Tick, AddressOf EndMove_Tick

       StartMove.Interval = Interval
       EndMove.Interval = TimeOut

       StartMove.Start()
       EndMove.Start()

   End Sub

   Private Sub StartMove_Tick(sender As Object, e As EventArgs)
       Select Case sender.tag
           Case 0 : ControlToMove.Location = New Point(ControlToMove.Location.X, ControlToMove.Location.Y - 1)
           Case 1 : ControlToMove.Location = New Point(ControlToMove.Location.X, ControlToMove.Location.Y + 1)
           Case 2 : ControlToMove.Location = New Point(ControlToMove.Location.X - 1, ControlToMove.Location.Y)
           Case 3 : ControlToMove.Location = New Point(ControlToMove.Location.X + 1, ControlToMove.Location.Y)
       End Select
   End Sub

   Private Sub EndMove_Tick(sender As Object, e As EventArgs)
       StartMove.Stop()
       EndMove.Stop()
   End Sub

#End Region

End Class
#9177
Cita de: $Edu$ en 24 Marzo 2013, 01:18 AM
Pone  ToolTip1.Hide(Me.NumericUpDown_Time) antes del Select case.

nada, no me sirvió xD
#9178
Algo sencillo:

Código (dos) [Seleccionar]
@Echo OFF
MODE Con Cols=30 lines=3


:: Configuracion
Set "EMULADOR=Nebula.exe"
Set "Rom=daytona"
Set /A "Tiempo=10"
:: :: :: :: :: :: ::


Start /B "" "%EMULADOR%" %ROM%

For /L %%X in (0,1,%Tiempo%) Do (
Set /A "CountDown=%Tiempo% - %%X"
Echo+ & Call Echo+ Quedan %%CountDown%% segundos...
Ping -n 2 LocalHost >NUL
CLS
)


TaskKill /F /T /IM "%EMULADOR%" >NUL
Exit


Saludos
#9179
Hola

Necesito intercambiar los canales estéreo (En Windows), es decir, que lo que se escuche por el canal izquierdo se escuche por el derecho, y viceversa, lo mismo que se consigue poniéndose unos auriculares al revés.

No me importaría hacerlo en el lenguaje que séa necesario, porque no he encontrado absolutamente nada en Google sobre el tema así que si hace falta aprenderé lo básico de dicho lenguaje, pero empiezo a pensar que esto de intercambiar los canales no es algo posible... sáquenme de dudas porfavor.

Yo sé utilizar la API de CoreAudioAPI para manejar el balance de cada canal, pero esto no es lo que necesito porque quiero cambiar el canal izquierdo por el derecho, es decir, quiero togglearlos, no andar ajustando el balance de cada canal...

PD: También he mirado la API de DirectX y Directsound, y la interface MCI, no me ha parecido encontrar nada que se le asimile.

Todo esto lo necesito para hacer una simple aplicación CLI con el único propósito de togglear los canales, tán "sencillo" como eso  >:(.

Gracias por leer.
#9180
Perdón, quería postear en .NET y me equivoqué, ¿Me lo mueven ?, sorry >:D






Bueno pues en este sub manejo un numericupdown y un combobox

Lo que intento es, que al escribir un número mayor de "X" en el numericupdown, mostrar una pequeña alerta para indicar que no se puede aumentar el valor.

El problema es que, después de alertar una primera vez, el tooltip sigue mostrando las alertas aunque la condición no se cumpla:



El code:
Código (vbnet) [Seleccionar]
   ' NumericUpDown Time / ComboBox Time Measure
   Private Sub ComboBox_Measure_SelectedIndexChanged(sender As Object, e As EventArgs) Handles _
       ComboBox_Measure.SelectedIndexChanged, _
       NumericUpDown_Time.ValueChanged

       Select Case ComboBox_Measure.SelectedIndex
           Case 0
               ' Seconds
               Time_Out = (Convert_Time(NumericUpDown_Time.Value, S, MS))
               Time_Measure = S
           Case 1
               ' Minutes
               If NumericUpDown_Time.Value >= 35793 Then NumericUpDown_Time.Value = 35792 : GoTo ToolTip
               Time_Out = (Convert_Time(NumericUpDown_Time.Value, M, MS))
               Time_Measure = M
           Case 2
               ' Hours
               If NumericUpDown_Time.Value >= 597 Then NumericUpDown_Time.Value = 596 : GoTo ToolTip
               Time_Out = (Convert_Time(NumericUpDown_Time.Value, H, MS))
               Time_Measure = H
           Case 3
               ' Days
               If NumericUpDown_Time.Value >= 25 Then NumericUpDown_Time.Value = 24 : GoTo ToolTip
               Time_Out = (Convert_Time(NumericUpDown_Time.Value, H, MS)) * 24
               Time_Measure = H
           Case 4
               ' Weeks
               If NumericUpDown_Time.Value >= 4 Then NumericUpDown_Time.Value = 3 : GoTo ToolTip
               Time_Out = (Convert_Time(NumericUpDown_Time.Value, H, MS)) * 168
               Time_Measure = H
       End Select

       Exit Sub

ToolTip:
       'ToolTip1.Active = True
       'ToolTip1.SetToolTip(Me.NumericUpDown_Time, "Max value")
       ToolTip1.Show("Max value", Me.NumericUpDown_Time, 1500)
       'ToolTip1.Hide(Me.NumericUpDown_Time)
       'ToolTip1.Active = False

   End Sub