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 - CeLaYa

#281
Cita de: sp26 en 12 Diciembre 2006, 23:43 PM
Aparte de saber leer, Saber asociar, saber armar lo que aprendiste y sobre todo... Tener responsabilidad en lo que haces xDD... No dañes ni un solo byte de algun disco duro y seras un perfecto Programador ;).

además necesitaras imaginación para hacer y deshacer lo que quieras, ha!! y eso si un buen manual y un monton de foreros que te ayuden jejeje
#283
Gracias compadre!!!! y yo que me estaba quebrando la cabeza buscando apis y era tan sencillo.


Picture1.Picture = Clipboard.GetData
#284
bueno a ver si este código te sirve para empezar, para este programa vas a ocupar:

1 CommandButton (Caption  = "Prueba tu suerte")
1 arreglo de 5 Labels (label1(1), label1(2), label1(3), label1(4), label1(5))
5 timers (Interval = 100, Enabled = False)

     


Option Explicit
Dim n(1 To 5) As Integer

Private Sub Command1_Click()
    Dim i As Long
   
    n(1) = 0
    n(2) = -1
    n(3) = -1
    n(4) = -1
    n(5) = -1
    Timer1.Enabled = True
    Timer2.Enabled = True
    Timer3.Enabled = True
    Timer4.Enabled = True
    Timer5.Enabled = True
End Sub

Private Sub Timer1_Timer()
    Randomize
    Label1(1).Caption = Int((9 * Rnd) + 1)
    n(1) = n(1) + 1
    If n(1) = 10 Then
        Timer1.Enabled = False
        Timer2.Enabled = True
        n(2) = 0
    End If
End Sub

Private Sub Timer2_Timer()
    Randomize
    Label1(2).Caption = Int((9 * Rnd) + 1)
    If n(2) = -1 Then Exit Sub
    n(2) = n(2) + 1
    If n(2) = 10 Then
        Timer2.Enabled = False
        Timer3.Enabled = True
        n(3) = 0
    End If

End Sub

Private Sub Timer3_Timer()
   
    Randomize
    Label1(3).Caption = Int((9 * Rnd) + 1)
    If n(3) = -1 Then Exit Sub
    n(3) = n(3) + 1
    If n(3) = 10 Then
        Timer3.Enabled = False
        Timer4.Enabled = True
        n(4) = 0
    End If
End Sub

Private Sub Timer4_Timer()
   
    Randomize
    Label1(4).Caption = Int((9 * Rnd) + 1)
    If n(4) = -1 Then Exit Sub
    n(4) = n(4) + 1
    If n(4) = 10 Then
        Timer4.Enabled = False
        Timer5.Enabled = True
        n(5) = 0
    End If
End Sub

Private Sub Timer5_Timer()
   
    Randomize
    Label1(5).Caption = Int((9 * Rnd) + 1)
    If n(5) = -1 Then Exit Sub
    n(5) = n(5) + 1
    If n(5) = 10 Then
        Timer5.Enabled = False
        If Label1(1).Caption = Label1(2).Caption And _
           Label1(1).Caption = Label1(2).Caption And _
           Label1(1).Caption = Label1(3).Caption And _
           Label1(1).Caption = Label1(4).Caption Then
            MsgBox "ganaste"
        Else
            MsgBox "suerte para la proxima"
        End If
    End If
End Sub


en este código uso un arreglo de 5 labels (label1) 5 timers y un commandbutton. lo que  hace esque cuando le das click al commandbutton se habilitan los 5 timers y empiezan a generar números aleatotrios, con la variable "n" le digo cuando detenerse a cada Timer, en este caso cuando el timer1 ha generado 10 números se detiene y hace que el timer2 se detenga al haber generado otros 10 números y asi susesivamente.

#285
la unica manera que me se es insertando una entrada en el registro de windows

"HKEY_LOCAL_MACHINE\Software\microsoft\windows\currentversion\run"
#286
buenas tardes, estoy haciendo un programa y necesito copiar una imagen desde una aplicación X a un picturebox, lo que trato de hacer es copiar la imagen en el portapales de windows y luego ponerla en mi picture, he estado buscando y me encontre con esto:

Private Const CF_TEXT = 1
Private Declare Function GetClipboardData Lib "user32" (ByVal wFormat As Long) As Long
Private Declare Function CloseClipboard Lib "user32" () As Long
Private Declare Function OpenClipboard Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function lstrlen Lib "kernel32" Alias "lstrlenA" (ByVal lpString As Long) As Long
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDst As Any, pSrc As Long, ByVal ByteLen As Long)
Private Sub Form_Load()
    'KPD-Team 2001
    'URL: http://www.allapi.net/
    'E-Mail: KPDTeam@Allapi.net
    Dim hStrPtr As Long, lLength As Long, sBuffer As String
    OpenClipboard Me.hwnd
    hStrPtr = GetClipboardData(CF_TEXT)
    If hStrPtr <> 0 Then
        lLength = lstrlen(hStrPtr)
        If lLength > 0 Then
            sBuffer = Space$(lLength)
            CopyMemory ByVal sBuffer, ByVal hStrPtr, lLength
            MsgBox sBuffer, vbInformation
        End If
    End If
    CloseClipboard
End Sub

pero este código solo pega texto y no se como hacerle para pegar una imagen, si alguien me puede echar una mano se los agradecería
#287
pues podrias hacer una estructura de datos donde guardes los datos de cada corredor


type DatosCorredores
    Nombe as string *50
    TiempoCarrera1 as Long
    TiempoCarrera2 as Long
    TiempoCarrera3 as Long
    ....
end type


y luego creas un array de esta estructura de acuerdo al número de corredores que tengas


dim Corredores(Num_Corredores) as DatosCorredores



creo que asi podrias sacar los datos que necesitas...
#288
====Redim====
Se utiliza en elnivel de procedimiento para reasignar espacio de almacenamiento paravariables de matriz dinámica.

Sintaxis

ReDim [Preserve] nombre_variable(subíndices) [As tipo] [, nombre_variable(subíndices) [As tipo]] . . .

La sintaxis de la instrucción ReDim consta de las siguientes partes:

Parte Descripción
Preserve Opcional.Palabra clave utilizada para conservar los datos de unamatriz existente cuando se cambia el tamaño de la última dimensión.
nombre_
variable Requerido. Nombre de la variable; sigue las convenciones estándar de nombre de variable.
subíndices Requerido. Dimensiones de una variable de matriz; se pueden declarar hasta 60 dimensiones múltiples. Elargumento subíndices utiliza la sintaxis siguiente:
[inferior To] superior [,[inferior To] superior] . . .

Cuando no se declara explícitamente en inferior, el límite inferior de una matriz se controla mediante la instrucción Option Base. El límite inferior es cero si no hay ninguna instrucción Option Base.

tipo Opcional.Tipo de datos de la variable; puede serByte,Boolean,Integer,Long,Currency,Single,Double,Decimal (no admitida actualmente),Date,String (para cadenas de longitud variable), String * length (para cadenas de longitud fija),Object,Variant, untipo definido por el usuario, o untipo de objeto. Utilice una cláusula As tipo distinta para cada variable que defina. Para una Variant que contiene una matriz, tipo describe el tipo de cada elemento de la matriz, pero no cambia la Variant a algún otro tipo.

Lainstrucción ReDim se utiliza para asignar o cambiar el tamaño de una matriz dinámica que ya se ha declarado formalmente mediante las instrucciones Private, Public o Dim con paréntesis vacíos (sin subíndices de dimensiones).

Puede utilizar la instrucción ReDim repetidamente para cambiar el número de elementos y dimensiones de una matriz. Sin embargo, no puede declarar una matriz de un tipo de datos y luego usar ReDim para cambiar la matriz a otro tipo de datos, a menos que la matriz esté contenida en una Variant. Si la matriz está contenida en una Variant, el tipo de los elementos se puede cambiar mediante una cláusula As tipo, a menos que esté utilizando la palabra clave Preserve, en cuyo caso no se permiten cambios al tipo de datos.

Si utiliza la palabra clave Preserve sólo puede cambiar el tamaño de la última dimensión de la matriz y no es posible cambiar el número de dimensiones. Por ejemplo, si la matriz sólo tiene una dimensión, puede cambiar el tamaño de esa dimensión porque es la última y única dimensión. Sin embargo, si la matriz tiene dos o más dimensiones, sólo puede cambiar la dimensión de la última y todavía conservar el contenido de la matriz. El ejemplo siguiente muestra cómo puede aumentar el tamaño de la última dimensión de una matriz dinámica sin borrar ninguno de los datos existentes contenidos en la matriz.

ReDim X(10, 10, 10)
. . .
ReDim Preserve X(10, 10, 15)

De modo parecido, cuando utiliza el argumento Preserve puede cambiar el tamaño de la matriz sólo cambiando el límite superior; cambiar el límite inferior produce un error.

Si hace que una matriz sea más pequeña de lo que era, perderá los datos de los elementos eliminados. Si transfiere una matriz a un procedimiento por referencia, no puede cambiar el tamaño de la matriz dentro del procedimiento.

Cuando se inicializan las variables, una variable numérica se inicializa a 0, una cadena de longitud variable se inicializa a una cadena de longitud cero ("") y una cadena de longitud fija se rellena con ceros. Las variables Variant se inicializan aEmpty. Cada elemento de una variable de un tipo definido por el usuario se inicializa como si fuera una variable distinta. A una variable que se refiere a un objeto se le debe asignar un objeto existente mediante la instrucción Set antes de que se pueda usar. Hasta que se asigna a un objeto, lavariable de objeto declarada tiene el valor especial Nothing, el cual indica que no se refiere a ninguna instancia en particular de un objeto.

Precaución   La instrucción ReDim actúa como una instrucción declarativa si la variable que declara no existe en elnivel de módulo onivel de procedimiento. Si más tarde crea otra variable con el mismo nombre, incluso con unalcance mayor, ReDim hará referencia a la creada más tarde y no causará necesariamente un error de compilación, incluso aunque Option Explicit esté en efecto. Para evitar estos conflictos, ReDim no se debe utilizar como una instrucción declarativa, sino sólo para cambiar el tamaño de las matrices.

Nota   Para cambiar el tamaño de una matriz contenida en una Variant, debe declarar explícitamente la variable Variant antes de intentar cambiar el tamaño de su matriz.


====Ubound====
Devuelve un tipoLong que contiene el mayor subíndice disponible para la dimensión indicada de unamatriz.

Sintaxis

UBound(nombre_matriz[, dimensión])

La sintaxis de la función UBound consta de las siguientes partes:

Parte Descripción
nombre_
matriz Requerido. Nombre de lavariable de matriz; sigue las convenciones estándar de nombres de variable.
dimensión Opcional; Variant (Long). Número entero que indica la dimensión cuyo límite superior se devolverá. Use 1 para la primera dimensión, 2 para la segunda y así sucesivamente. Si dimensión se omite, se supone que es 1.


Comentarios

La función UBound se utiliza junto con la función LBound para determinar el tamaño de una matriz. Use la función LBound para encontrar el límite inferior de la dimensión de una matriz.

UBound devuelve los valores enumerados en la tabla siguiente para una matriz con las dimensiones siguientes:

Dim A(1 To 100, 0 To 3, -3 To 4)

Instrucción Valor devuelto
UBound(A, 1) 100
UBound(A, 2) 3
UBound(A, 3) 4


-----------------------------------------------------------------------------------
Nota:  Esto lo saque de la ayuda del VB
#289
es mejor crear un instalador, asi te quitas de problemas
#290
creo que sería así:


Private Sub Command1_Click()

    Dim o() As Byte
    Dim p As Byte, fact As Long
    p = Text1.Text
    p = p + 1
    fact = 1
    Label1.Caption = ""
    ReDim o(0 To 0)
    While p > 1
        ReDim Preserve o(0 To UBound(o))
       
        o(UBound(o)) = p - 1
        Label1.Caption = Label1.Caption & o(UBound(o)) & vbCrLf
        fact = fact * o(UBound(o))
        p = p - 1
       
    Wend
    Label1.Caption = Label1.Caption & fact & vbCrLf
End Sub