border

Miembros:
Mensajes:
Temas:
Online:

Ultimo Miembro:

 
 

Cuenta Bancaria en EEUU
  #1 (permalink)  
Antiguo 31-07-2008, 15:06:36
Gran Participación en el Foro
 
Registrado: sep 2006
Posts: 170
El_Principiante Valoración +2
Predeterminado Trabajar con el ProgressBar

Hola que tal, una consulta hago una copia de mi base de datos hasta aqui todo muy bien, me genera la copia de mi base de datos con la información que tiene la original, pero ahora se me ocurrio poner un progressbar para que el usuario vea como se esta grabando la base de datos, mi problema: es que no se calcular el tiempo de copiado para que coincida con la base de datos y terminen de igual forma.

Existe algun metodo o cual es la formula para hacerlo.

Cualquier aporte se agradece.
__________________
El exito no es un milagro, es una Recopensa
Responder Con Cita
  #2 (permalink)  
Antiguo 31-07-2008, 17:13:47
Un Nuevo Amigo
 
Registrado: jul 2008
Ubicación: Costa Rica
Posts: 11
rjimenezo Aun no valorado
Lightbulb Re: Trabajar con el ProgressBar

Crea un módulo bas con el siguiente código:

Option Explicit

'Constantes para el Api CopyFileEx

Public Const PROGRESS_CANCEL = 1
Public Const PROGRESS_CONTINUE = 0
Public Const PROGRESS_QUIET = 3
Public Const PROGRESS_STOP = 2
Public Const COPY_FILE_FAIL_IF_EXISTS = &H1
Public Const COPY_FILE_RESTARTABLE = &H2

'Declaración Api CopyFileEx para copiar archivos con progreso
Public Declare Function CopyFileEx Lib "kernel32.dll" Alias "CopyFileExA" ( _
ByVal lpExistingFileName As String, _
ByVal lpNewFileName As String, _
ByVal lpProgressRoutine As Long, _
lpData As Any, _
ByRef pbCancel As Long, _
ByVal dwCopyFlags As Long) As Long

' Flag para cancelar la copiar ( 0 copia, 1 cancela )
Public Cancelar As Long

'función para copiar

Public Function CopiarArchivo(ByVal TotalFileSize As Currency, ByVal _
TotalBytesTransferred As Currency, _
ByVal StreamSize As Currency, _
ByVal StreamBytesTransferred As Currency, _
ByVal dwStreamNumber As Long, _
ByVal dwCallbackReason As Long, _
ByVal hSourceFile As Long, _
ByVal hDestinationFile As Long, _
ByVal lpData As Long) As Long


'mostramos el progreso en el label
Form1.ProgressBar1.Value = CStr(Int((TotalBytesTransferred * 10000) / _
(TotalFileSize * 10000) * 100))

DoEvents
'continuamos la copia del fichero
CopiarArchivo = PROGRESS_CONTINUE
End Function

Y en el botón el siguiente código:


Option Explicit

Private Sub Command1_Click()
Dim Ret As Long

Cancelar = 0

'text1 es donde va la ruta de el archivo a copiar y text2 es el destino
Label1.Caption = "Comenzando a copiar: " & Text1 & " en: " & Text2

'Se llama al api y comienza la copia del archivo, _
pasandole las rutas y _la dirección de la función
Ret = CopyFileEx(Trim$(Text1), Trim$(Text2), AddressOf CopiarArchivo, _
ByVal 0&, Cancelar, COPY_FILE_RESTARTABLE)

'Moastramos el resultado
Label1.Caption = "Estado de la copia: " + IIf(Ret = 0, _
"(Error/Abortado)", _
"Copia completa")

End Sub
Responder Con Cita
  #3 (permalink)  
Antiguo 31-07-2008, 18:37:18
Gran Participación en el Foro
 
Registrado: sep 2006
Posts: 170
El_Principiante Valoración +2
Predeterminado Re: Trabajar con el ProgressBar

Gracias rjimenezo tu consejo es muy bueno, logre hacer lo que queria obviamente lo que sugieres lo adapte a mis condiciones y todo funciona perfectamente, como la base de datos es en este momento muy pequeña en Kbytes no tarda mucho pero conforme cresca se vera mucho mejor.

Mil Gracias nuevamente.
__________________
El exito no es un milagro, es una Recopensa
Responder Con Cita
Respuesta


Herramientas
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Trackbacks are habilitado
Pingbacks are habilitado
Refbacks are habilitado



La franja horaria es GMT. Ahora son las 05:21:59.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO 3.1.0
A vBSkinworks Design

Alojado en el servicio Premium de Masquewebs | Diseño mejorado por MasqueWebs

right