Ver Mensaje Individual
  #4 (permalink)  
Antiguo 29/11/2010, 14:33
Avatar de XYON126
XYON126
 
Fecha de Ingreso: abril-2006
Mensajes: 272
Antigüedad: 18 años, 9 meses
Puntos: 0
Respuesta: Dos Timer y uno no funciona.

Hola erbuson & pkj!

Muchas gracias por vuestra ayuda, por lo de varios timer como comentas erbuson lo he probado y si funciona aunque no es exactamente como tengo en mente, mi idea es en el formulario de la foto parte ya os es conocido, uso un timer para con el array que me ensenastes ha hacer, tengo el horario mundial de las ciudades especificadas; ahora el otro timer es para la otra parte del formulario la derecha, donde tengo un cronometro de cuentra atras que es de exactamente 121 horas y se inicia el domingo a las 22:00 Madrid o 16:00 New York y finaliza el viernes a las 23:00 Madrid o 17:00 New York, este cronometro lo que hace es avisarme cuanto tiempo me queda de mercado de divisas abierto para poder cerrar antes del cierre del mercado las operaciones o tradings que tenga abiertas y no tener que pagar Swap si es negativo, con esto mas o menos respondo a la idea que me esta dando pkj.
Lo malo de todo esto es que he probado dos timer en un programilla independiente y me funciona pero en este no y lo unico que he cambiado es poner la orden del command_Click en el Form_Load() toda la funcion o como funcion independiente y llamandola y no me funciona, ¿Porque razon me ocurre esto?

Aqui os posteo la foto del formulario y el codigo .:



Código vb:
Ver original
  1. Option Explicit
  2.  
  3. Dim Tiempo_restante As Date
  4. Dim Horafinal As Date
  5. Dim Horainicio As Date
  6. Dim Fecha As Date
  7. Dim Dia2 As Integer
  8.  
  9. Dim Londres As Date
  10. Dim Nueva_York As Date
  11. Dim Tokyo As Date
  12. Dim Sidney As Date
  13. Dim Madrid As Date
  14. Dim Francfort As Date
  15. Dim Zurich As Date
  16. Dim Wellington As Date
  17. Dim Toronto As Date
  18. Dim Horario As Date
  19. Dim Dia As String
  20.  
  21. Dim DifLondres As Date
  22. Dim DifNueva_York As Date
  23. Dim DifTokyo As Date
  24. Dim DifSidney As Date
  25. Dim DifWellington As Date
  26. Dim DifToronto As Date
  27.  
  28. 'Funcion para cambiar el color del texto
  29. '################################################# ##########
  30. Private Sub AjustaColor(Letrero As Label)
  31. If Letrero.Caption = "ABIERTA" Then
  32. Letrero.ForeColor = vbGreen
  33. ElseIf Letrero.Caption = "CERRADA" Then
  34. Letrero.ForeColor = vbRed
  35. Else
  36. Letrero.ForeColor = vbBlack
  37. End If
  38. End Sub
  39.  
  40. 'Funcion para determinar Abierta/Cerrada
  41. '################################################# ##########
  42. ' Ha sido modificada para recibir el Caption del Label que muestra el día y hora
  43. Public Function CloseOpen(LabelHora As Label) As String
  44. Dim Hora As Date, Dia As String
  45. Hora = CDate(Right$(LabelHora.Caption, 8))
  46. Dia = Left$(LabelHora.Caption, 3)
  47. If Hora > CDate("8:29:59") And Hora < CDate("17:29:59") Then
  48. CloseOpen = "ABIERTA"
  49. Else
  50. CloseOpen = "CERRADA"
  51. End If
  52. If Dia = "sáb" Or Dia = "dom" Then CloseOpen = "CERRADA"
  53. If LabelHora.Index = 9 Then
  54.     CloseOpen = "ABIERTA"
  55.     If Dia = "vie" And Hora >= CDate("23:00:00") Then
  56.     'If Dia = "dom" And Hora >= CDate("23:00:00") Then
  57.    CloseOpen = "CERRADA"
  58.     ElseIf Dia = "sáb" Or Dia = "dom" And Hora <= CDate("22:00:00") Then CloseOpen = "CERRADA"
  59.     'ElseIf Dia = "dom" And Hora <= CDate("22:00:00") Then CloseOpen = "CERRADA"
  60.    Else
  61.     CloseOpen = "ABIERTA"
  62.     End If
  63. End If
  64. End Function
  65.  
  66. Private Sub Command1_Click()
  67. Dim Capital, Porcentaje, Riesgo, Volumen, Temp, Pips As Single
  68. Capital = cmb_Capital
  69. Porcentaje = cmb_riesgo
  70. Pips = txt_pips
  71.  
  72. Riesgo = Capital * Porcentaje / 100
  73. txt_pips = Pips
  74. txt_riesgo = Riesgo
  75.  
  76. Temp = Riesgo / Pips
  77.  
  78. If Temp <= 0.1 Then
  79. Volumen = 0.1
  80. ElseIf Temp <= 0.2 Then
  81. Volumen = 0.2
  82. ElseIf Temp <= 0.3 Then
  83. Volumen = 0.3
  84. ElseIf Temp <= 0.4 Then
  85. Volumen = 0.4
  86. ElseIf Temp <= 0.5 Then
  87. Volumen = 0.5
  88. ElseIf Temp <= 1 Then
  89. Volumen = 1
  90. ElseIf Temp <= 2 Then
  91. Volumen = 2
  92. ElseIf Temp <= 3 Then
  93. Volumen = 3
  94. ElseIf Temp <= 4 Then
  95. Volumen = 4
  96. ElseIf Temp <= 5 Then
  97. Volumen = 5
  98. ElseIf Temp <= 6 Then
  99. Volumen = 6
  100. ElseIf Temp <= 7 Then
  101. Volumen = 7
  102. Else
  103. Volumen = 8
  104. End If
  105.  
  106. txt_volumen = Volumen
  107.  
  108. End Sub
  109.  
  110. 'Funcion para cambiar el color del texto en cada Label
  111. '################################################# ##########
  112. Private Sub ComoEsta_Change(Index As Integer)
  113. AjustaColor Comoesta(Index)
  114. End Sub
  115.  
  116. '################################################# ##########
  117. Private Sub HoraActual()
  118. Dim Ahora As Date, Indice As Integer
  119. Ahora = Now
  120. PonerHora 0, Ahora, -1 'Londres
  121. PonerHora 1, Ahora, -6 'NuevaYork
  122. PonerHora 2, Ahora, 7 'Tokyo
  123. PonerHora 3, Ahora, 8 'Sidney
  124. PonerHora 4, Ahora, 0 'Madrid
  125. PonerHora 5, Ahora, 0 'Francfort
  126. PonerHora 6, Ahora, 0 'Zurich
  127. PonerHora 7, Ahora, 10 'Wellington
  128. PonerHora 8, Ahora, -6 'Toronto
  129. PonerHora 9, Ahora, 0 'Madrid
  130. PonerHora 10, Ahora, -6 'NuevaYork
  131. End Sub
  132.  
  133.  
  134. '################################################# ##########
  135. Private Sub PonerHora(Indice As Integer, LaHora As Date, Diferencia As Integer)
  136. ' Pone la Hora en la Etiqueta correspondiente a Indice
  137. QueHora(Indice) = Format(DateAdd("h", Diferencia, LaHora), "ddd hh:mm:ss")
  138. ' Después, la misma rutina, efectua el cambio de Abierta/Cerrada
  139. Comoesta(Indice) = CloseOpen(QueHora(Indice))
  140. End Sub
  141.  
  142.  
  143. '################################################# ##########
  144. Private Sub Timer1_Timer()
  145. HoraActual
  146. End Sub
  147. '################################################# ##########
  148. Private Sub Timer2_Timer()
  149.  
  150. 'Contador regresivo
  151.    Tiempo_restante = Horafinal - Time
  152.     Label7.Caption = Format(Tiempo_restante, "hh:mm:ss")
  153.  
  154. End Sub
  155. '################################################# ##########
  156. Private Sub cronometro()
  157. Horainicio = Time
  158.     'el 1 indica los minutos desde los que comenzará la cuenta atrás.
  159.    Horafinal = DateAdd("n", 1, Now)
  160.     Timer2.Enabled = True
  161.     Label7.Caption = Format(Tiempo_restante, "hh:mm:ss")
  162. End Sub
  163. '################################################# ##########
  164. Private Sub Form_Load()
  165.  
  166. 'Inicio función general relojes Bolsa.
  167. HoraActual
  168. Timer1.Interval = 1000
  169. Timer1.Enabled = True
  170.  
  171. Fecha = Format(Date, "dd mmmm YYYY")
  172. Label10 = Fecha
  173. 'Fin función general relojes Bolsa.
  174.  
  175. 'Inicio función cronometro apertura-cierre Bolsa.
  176. cronometro
  177.  
  178. Dia2 = DatePart("w", Fecha)
  179.  
  180. If Dia2 = "6" And Horainicio > CDate("22:59:59") Or Dia2 = "7" Or Dia2 = "1" And Horainicio > CDate("22:00:00") Then
  181. Label13.Caption = "MERCADO CERRADO"
  182. Else
  183. Label13.Visible = False
  184. Label8 = Dia2 - 7
  185.  
  186. End If
  187.  
  188. 'Fin función cronometro apertura-cierre Bolsa.
  189.  
  190. End Sub


Un saludo