Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - 79137913

#1101
Programación Visual Basic / Re: Bucle por tiempo
14 Febrero 2011, 16:37 PM
HOLA!!!

Nota: El codigo que escribi puede llegar a tener un minimo desfasaje.

GRACIAS POR LEER!!!
#1102
Programación Visual Basic / Re: Bucle por tiempo
14 Febrero 2011, 13:01 PM
HOLA!!!

Bueno aca lo tenes, ejecutara el codigo una vez por cada intervalo de tiempo.

Te dejo las 2 maneras que se me ocurrieron: (prefiero la primera)

Código (vb) [Seleccionar]
Private Declare Function GetTickCount Lib "kernel32" () As Long

Private Sub Bucle()
   Dim X As Long
   Dim Milisec As Long 'cantidad de milisegundos por bucle
   Dim Vueltas As Long 'cantidad de vueltas
   Dim Time_Start As Long
   Milisec = 1000
   Vueltas = 10
   Time_Start = GetTickCount()
   For X = 1 To Vueltas
       'Codigo a ejecutar si queres que lo haga apenas empieza el bucle sino lee abajo.
       Do While Time_Start - getticount() < Milisec
           DoEvents
       Loop
       Time_Start = Time_Start + Milisec
       'El codigo a ejecutar si queres que lo haga despues del primer intervalo sino lee arriba.
   Next
End Sub


Código (vb) [Seleccionar]
Private Declare Function GetTickCount Lib "kernel32" () As Long

Private Sub Bucle()
   Dim X As Long
   Dim Flag As Boolean ' Si esta en true Ejecuta el codigo
   Dim Milisec As Long 'cantidad de milisegundos por bucle
   Dim Vueltas As Long 'cantidad de vueltas
   Dim Time_Start As Long
   Milisec = 1000
   Vueltas = 10
   Flag = True ' aca si queres que la primera ejecucion sea cuando pase el primer intervalo quita esta linea
   Time_Start = GetTickCount()
   Do While X <= Vueltas
       DoEvents
       If Flag Then
           'El codigo a ejecutar
           Flag = False
       End If
       If (Time_Start - GetTickCount()) >= Milisec Then
           X = X + 1
           Flag = True
           Time_Start = Time_Start + Milisec
       End If
           
   Wend
End Sub


GRACIAS POR LEER!!!
#1103
Programación Visual Basic / Re: Bucle por tiempo
14 Febrero 2011, 04:22 AM
HOLA!!!

Yo lo haria con Doevents y GetTickCount para saber cuanto tiempo vas...

El problema de Sleep es que te congela la pc osea No permite ninguna otra ejecucion simultanea, cosa que doevents si permite  ::)

GRACIAS POR LEER!!!
#1104
HOLA!!!

Muy buena idea!

;-)

GRACIAS POR LEER!!!
#1105
HOLA!!!

Estuve buscando otras maneras de hacerlo, pero cuanto mas ganaba velocidad la funcion mas se asemejaba a las que habian posteado, asi que no vale :P.

En fin quiten la mia del test que solo realentiza...

Ahh, aca les dejo la version mas lenta que puede haber :P

Agreguen en referencias Microsoft Scripting Runtime

Código (vb) [Seleccionar]

Private Function VeryVerySlow7193(sPath as string) as string
Dim fso As New FileSystemObject
Dim Archivo as File
Set Archivo = fso.GetFile(sPath)
If Not (Fi  Is Nothing) Then VeryVerySlow7913 = Fi.Name : Exit Function
VeryVerySlow7913 = "Error, asegurese que el archivo existe (This Function Sucks)"
End Function


GRACIAS POR LEER!!!
#1106
HOLA!!!

Pff que bajon era re lenta, aho ra mo pongo a hacer otra funcion, daba asco la primera, pero testeenla por que no tengo vb aca

GRACIAS POR LEER!!!
#1107
HOLA!!!

No tengo el VB aca asi que solo dejo el codigo(sin testear):
Código (vb) [Seleccionar]

Private Declare Function GetFileTitle Lib "comdlg32.dll" Alias "GetFileTitleA" (ByVal lpszFile As String, ByVal lpszTitle As String, ByVal cbBuf As Integer) As Integer

Private Function Fn7913(sPath As String) As String
     Dim Mem As String
     Mem = String(255, 0)
     GetFileTitle sPath, Mem, 255
     Fn7913 = Trim(Mem)
End Function


GRACIAS POR LEER!!!
#1108
HOLA!!!

@Mr Frog: jajaja una de las mejores paginas que vi!!! XD

GRACIAS POR LEER!!!
#1109
HOLA!!!

Creo que asi te va a servir:

Private sub check1_click()
Command1.Enabled = check1. Value
End sub

GRACIAS POR LEER!!!
#1110
HOLA!!!

:S estoy empezando la previa asi que mañana jugare xD

GRACIAS POR LEER!!!