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

 

 


Tema destacado: Introducción a Git (Primera Parte)


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

Desconectado Desconectado

Mensajes: 128


Ver Perfil
producir un evento mientras piensa
« en: 2 Octubre 2006, 12:10 pm »

Hola, quedria saber si en visual basic se produce algun evento cuando la maquina esta realizando una accion y aprovecharlo pues para hacer cualquier cosa, como cambiar el icono al reloj de arena etc. O si no se produce ningun evento como hacerlo. Pongamos por caso, que tengo un boton, y con ese boton abro un archivo asi.
open cd.filename for binary as #1
file = len(cd.filename)
get #1, , file
close #1
bien pues esto si escojo un archivo grande, el formulario en cuestion se queda el rato que esta trabajando digamos que casi bloqueado, osea la sensacion visual que da es que sa quedado pillado aunque no es asi. Y eso quisiera saber si en este momento se produce algun evento o como podria hacer para que el formulario se quedase intacto (dado que si cargas el archivo con un common dialog al abrirlo digamos k no se actualiza completamente el formulario de abajo mientras inicia la carga), y eso para que quede el formulario bien, o poner que se cambie el icono, o incluso una barra de prgreso mientras carga, etc. Gracias y saludos.


En línea

_Sergi_


Desconectado Desconectado

Mensajes: 842



Ver Perfil
Re: producir un evento mientras piensa
« Respuesta #1 en: 2 Octubre 2006, 13:44 pm »

Sólo tienes que usar la propiedad MousePointer.

Por ejemplo

Código:
Private Sub Command1_Click()
'Proceso empieza
Screen.MousePointer = vbHourglass
open cd.filename for binary as #1
file = len(cd.filename)
get #1, , file
close #1
'Proceso termina
Screen.MousePointer = vbDefault.
End Sub

En el caso de que quisieras utilizar un icono personalizado, sería algo así

Código:
Screen.MouseIcon = LoadPicture("C:\Test\Cursor.cur")
Screen.MousePointer = vbCustom

También puedes cursores desde archivos externos. Como sabes VB 6 no incluye el cursor de la mano; lo podrías usar de éste modo:

Código:
'En un módulo
Public Const HandCursor = 32649&
Public Declare Function SetCursor Lib "user32" (ByVal hCursor As Long) As Long
Public Declare Function LoadCursor Lib "user32" Alias "LoadCursorA" (ByVal hInstance As Long, ByVal lpCursorName As Long) As Long
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
'En el evento MouseMove del form, botón etc
Dim lHandle As Long
lHandle = LoadCursor(0, HandCursor)
If (lHandle > 0) Then SetCursor lHandle
End Sub

Bien, lo mismo que te dije se aplica a las barras de progreso. Simplemente, cada vez que se complete un proceso, súmale un número a la propiedad Value de la ProgressBar

Por ejemplo

Código:
'Empieza el proceso
Process1.Value = 0
Kill "C:\TEMP\*.tmp"
Process1.Value = 25
Dim Datos as String
Dim Hora as Variant
Process1.Value = 75
Msgbox "Datos " & Datos & " " & "Hora: " & Hora
'Proceso terminado
Process1.Value = 100
Msgbox "Terminado"

Y para terminar, aclararte que no se produce ningún evento mientras VB6 realiza una acción.

Un saludo



En línea

Proyecto de Ingeniero
fraktal

Desconectado Desconectado

Mensajes: 128


Ver Perfil
Re: producir un evento mientras piensa
« Respuesta #2 en: 2 Octubre 2006, 14:06 pm »

Gracias sergi, me ha quedado muy claro. Gracias. S2.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Descubren una forma barata de producir grafeno
Noticias
wolfbcn 0 794 Último mensaje 21 Noviembre 2015, 02:28 am
por wolfbcn
El adiós a un clásico: dejaran de producir reproductores de VHS
Foro Libre
NicolasPileci 6 2,533 Último mensaje 25 Julio 2016, 10:32 am
por Orubatosu
Así piensa Alemania acabar con los registros online
Noticias
wolfbcn 1 1,394 Último mensaje 9 Mayo 2017, 10:14 am
por jaxk
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines