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


 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  imagenes aleatorias seguidas
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: imagenes aleatorias seguidas  (Leído 123 veces)
corlo

Desconectado Desconectado

Mensajes: 25


Ver Perfil
imagenes aleatorias seguidas
« en: 7 Septiembre 2020, 23:22 »

Hola soy corlo
estoy haciendo un pequeño codigo de imagenes aleatorias, que apretando un command1
me va generando una imagen aleatoria, funciona perfectamente ahora lo que quiero es
que con otro boton command2 me haga todas las imagenes aleatorias  seguidas mediante un intervalo de tiempo.
en el formulario hay :
filelistbox=archivos
image1
el codigo es el siguiente:

Código:

Private Sub Command1_Click()
Dim aleatorio As Integer
aleatorio = Int(((archivos.ListCount - 1) * -1) * Rnd + archivos.ListCount - 1)
Image1.Picture = LoadPicture(App.Path + "\imagenes\" + archivos.List(aleatorio))
End Sub

Private Sub Form_Load()
archivos.Path = App.Path + "\imagenes\"
End Sub



gracias


En línea

NEBIRE


Desconectado Desconectado

Mensajes: 2.262


Ver Perfil
Re: imagenes aleatorias seguidas
« Respuesta #1 en: 9 Septiembre 2020, 17:27 »

Simplemente añade un control 'Timer', establece el 'tiempo de espera' entre cambio de imágenes (el valor de la propiedad 'interval', refiere milisegundos). Deja el control timer desactivado, (Enabled=FALSE) y actívalo cuando cargas una carpeta dada.

Comentarios:
En el filelistbox, deberías filtrar para que contenga solo tipos de imágenes que puedes leer... (extensiones, jpg, tif, gif, bmp)...

El 'aleatorio' deja mucho que desear... es muy fácil que salgan imágenes repetidas constantemente. Hay que tomar la lista y barajarla tan pronto como se establece la ruta (evento pathchange)...

Código
  1. private Lista()    as integer
  2. private NumFiles    as integer
  3. private Actual    as integer
  4.  
  5. private sub Archivos_pathchange
  6.    dim k as integer
  7.  
  8.    numfiles = archivos.listcount
  9.    redim lista(0 to numfiles-1)
  10.  
  11.    for k= 0 to numfiles-1
  12.        lista(k) = k
  13.    next
  14.  
  15.    call Barajar
  16. end sub
  17.  
  18. private sub Barajar
  19.    dim k as integer,  j as innteger, ix as integer
  20.  
  21.    for k= numfiles-1 to 1 step -1
  22.        ix = Int( k * Rnd )
  23.  
  24.        j = lista(k)
  25.        lista(k) = lista(ix)
  26.        lista(ix) = j
  27.    next
  28.  
  29.    Actual = 0
  30. end sub
  31.  
  32. private function NextImg as integer
  33.     NextImg = Actual
  34.  
  35.     Actual = (Actual+1)
  36.     if (Actual = numfiles) then call barajar
  37. end function
  38.  

Y para completar el código... hay que rehacer lo que has puesto:
Código
  1. private Ruta    as string
  2.  
  3. Private Sub Form_Load()
  4.    Ruta = (App.Path & "\imagenes\")
  5.    //archivos.pattern = tu decides que tipo de imágenes quieres...
  6.    archivos.Path = ruta
  7.    timer1.Interval = 3000
  8.    timer1.enabled = true
  9. End Sub
  10.  
  11. Private Sub Timer1_timer()
  12.    set Image1.Picture = LoadPicture(ruta & archivos.List(lista(NextImg)))
  13. End Sub
  14.  

y listo... tarea completa. ahora es de verdad aleatorio y una imagen nunca se repetirá antes de haber salido todas, las demás.


« Última modificación: 9 Septiembre 2020, 17:30 por NEBIRE » En línea

corlo

Desconectado Desconectado

Mensajes: 25


Ver Perfil
Re: imagenes aleatorias seguidas
« Respuesta #2 en: 9 Septiembre 2020, 18:23 »

gracias nebire

justo lo que necesitaba

problema resuelto
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Fallece después de jugar 40 horas seguidas al Diablo 3
Noticias
wolfbcn 4 1,549 Último mensaje 19 Julio 2012, 21:15
por Jenag
Un hombre juega a COD: Black Ops II 135 horas seguidas
Noticias
wolfbcn 0 731 Último mensaje 22 Noviembre 2012, 22:53
por wolfbcn
{Solucionado} [C] Detectar tres mayúsculas seguidas
Programación C/C++
alvr 9 2,781 Último mensaje 4 Enero 2013, 14:25
por leosansan
Imagenes aleatorias
.NET (C#, VB.NET, ASP)
nolasco281 3 1,941 Último mensaje 3 Agosto 2015, 15:44
por Eleкtro
ver webs más seguidas en cada país
Desarrollo Web
javier12 2 310 Último mensaje 14 Diciembre 2018, 20:31
por javier12
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines