|
281
|
Programación / Programación Visual Basic / Re: que se necesita par aprender VB¿
|
en: 13 Diciembre 2006, 01:11 am
|
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
|
|
|
284
|
Programación / Programación Visual Basic / Re: Programar Tragamonedas o tragaperras. "Slots"
|
en: 11 Diciembre 2006, 23:35 pm
|
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.
|
|
|
286
|
Programación / Programación Visual Basic / Copiar imagen en portapapeles
|
en: 11 Diciembre 2006, 22:52 pm
|
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
|
Programación / Programación Visual Basic / Re: AYUDA CON MI PROGRAMA... ARRAYS Y MATRICES
|
en: 11 Diciembre 2006, 20:00 pm
|
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
|
Programación / Programación Visual Basic / Re: Ahora el factorial con while, wend.
|
en: 11 Diciembre 2006, 19:44 pm
|
====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
|
|
|
290
|
Programación / Programación Visual Basic / Re: Ahora el factorial con while, wend.
|
en: 9 Diciembre 2006, 16:41 pm
|
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
|
|
|
|
|
|
|