elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
29 Mayo 2012, 03:13  


Tema destacado: Deseas probar algunas mejoras a la interfaz del foro? Prueba cake! acerca de

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo, raul338)
| | |-+  Como rotar estas promociones...?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Como rotar estas promociones...?  (Leído 336 veces)
luison

Desconectado Desconectado

Mensajes: 91


Ver Perfil
Como rotar estas promociones...?
« en: 19 Abril 2011, 18:13 »

Salu2

Tengo una tabla con promociones:
ID -  DESCRIPCION -   INICIA -     TERMINA
1      3 x 2 Cereales   19/04/2011   25/04/2011
2      4 X 3 Pastas       20/04/2011  30/04/2011


Código
Dim recset As New Recordset
   Set recset = Conexion.Execute("SELECT descripcion from promos where termina >='" & Date & "'")
 
           If recset.EOF = False Then
 
                   While Not recset.EOF
                           'mostrar promocion #1
                           'esperar 1 minuto
                           'mostrar promocion # 2
                           'esperar 1 minuto
                           '...
                           recset.MoveNext
                   Loop
           End If
 
   Set recset = Nothing
 

La idea es mostrar la promoción #1, esperar un tiempo razonable mientras se lee la descripción, luego mostrar la siguiente promoción, esperar y asi sucesivamente.

He pensado tal vez se pueda hacer con
Código
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
 

O  posiblemente exista una forma mas eficiente.

Espero puedan ayudarme  con algunos tips.

Gracias, seguiremos por aqui intentando.



En línea
luison

Desconectado Desconectado

Mensajes: 91


Ver Perfil
Re: Como rotar estas promociones...?
« Respuesta #1 en: 19 Abril 2011, 19:37 »

Hasta ahorita he logrado un avance con 2 timers, un par de arreglos para guardar la info de la consulta:

Código
Public Sub consulta_promos()
 
Dim recset As New Recordset
   Set recset = Conexion.Execute("SELECT descripcion,img from promos where fecha_termina >= #" & Date & "#")
 
           If recset.EOF = False Then
 
                   Do While Not recset.EOF
 
                           mtextos(posT) = recset!descripcion
                           mImages(posI) = recset!img
 
                           posT = posT + 1
                           posI = posI + 1
                           recset.MoveNext
                   Loop
           End If
 
           Set recset = Nothing
End Sub
 



Código
Private Sub tmrPromociones_Timer()
 
 
If tope > posT Then
tope = 1
lblMsjsPromos.Caption = mtextos(tope)
   Me.picPromos.LoadImage_FromFile (App.Path & "/img_promos/" & mImages(tope))
   Me.picPromos.AutoSize = True
tope = tope + 1
Else
   lblMsjsPromos.Caption = mtextos(tope)
   Me.picPromos.LoadImage_FromFile (App.Path & "/img_promos/" & mImages(tope))
   Me.picPromos.AutoSize = True
tope = tope + 1
End If
 
   tmrPromociones.Enabled = False
   Me.tmrReiniciaPromos.Enabled = True
End Sub
 

Estoy provocando varios escenarios / casos para ver si esta forma es la adecuada


En línea
BlackZeroX (Astaroth)
Wiki

Desconectado Desconectado

Mensajes: 2.831


I'Love...!¡.


Ver Perfil WWW
Re: Como rotar estas promociones...?
« Respuesta #2 en: 20 Abril 2011, 20:38 »

En lugar un timer y el Sleep ( Este te duerme el hilo ) puedes usar:

Wait()

Asi:

Código
 
 
option explicit
 
private recset As Recordset'// No hay que hacerle New ya que olo lo usaremos como referenciador al que obtendremos.
' // En cualquier otro proceso...
   Set recset = Conexion.Execute("SELECT descripcion,img from promos where fecha_termina >= #" & Date & "#")
private bExit  as boolean
 
Public Sub Girar_Promos()
on error goto _ErrReport:
dim simg$
   if ( not recset is nothing ) then
       with recset
           Do While (bExit = false)
               simg$ = App.Path & "/img_promos/" & recset!img
               if ( dir(simg$,vbarchive) <> "" then
                   picPromos.LoadImage_FromFile  (simg$)
                   lblMsjsPromos.Caption         = recset!descripcion
                   call wait( 5 ) ' // Cada 5 segundos.
               else
                   debug.print "Error Al cargar: "; simg$
               end if
               if ( .EOF ) then
                   .MoveFirst
               else
                   .MoveNext
               end if
           loop
       end with
   end if
exit sub
_ErrReport:
   Debug.print "Error Con el RecordSet"
End Sub
 
 

Dulces Lunas!¡.
.
« Última modificación: 20 Abril 2011, 20:42 por BlackZeroX▓▓▒▒░░ » En línea

Web Principal-->[ Blog(VB6) | Host File (Public & Private) | Scan Port | (New)MyInfraPC (Descubre mi Contraseña venefi. $) ]



The Dark Shadow is my passion.
El infierno es mi Hogar, mi novia es Lilith y el metal mi
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines