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

#3721
Bueni, ahi me funcionó:
Código (vb) [Seleccionar]
Public Function Descarga_controles(Controles) As Boolean
Dim Control_item As Control
' Comrpueba que hay mas de un control o sea por lo menos uno cargado
If Controles.Count > 1 Then
  ' Cuenta cada control cargado
  For Each Control_item In Controles
   ' Omite el control padre porque no puede ser eliminado
   If Control_item.Index > 0 Then
    Call Unload(Control_item)
   End If
  Next Control_item
  Descarga_controles = True
Else
  ' No se descargaron los controles ya que no se encontró ninguno
  Descarga_controles = False
End If
End Function


Pero tube que quitarle la declaración del tipo de variable a recibir, no hay alguna forma de si ponerle el tipo para que no pueda aceptar otra cosa que no sean controles?
#3722
Hola, estaba haciendo una función para poder descargar controles de forma automatizada pero al parecer no me resultó muy bien:

Supongamos que tengo el control text(index) y le hize load por cada item que necesitaba cargar y no precisamente en un orden numérico por lo tanto cuando quiera descargarlos despues no podría utilizar for id = 0 to text.count - 1 sino que tendría que utilizar un for each control in text pero lo hago en varios controles asi que me puse a hacer esta función:

Código (vb) [Seleccionar]
Public Function Descarga_controles(Controles As Controls) As Boolean
Dim Control_item As Control
' Comrpueba que hay mas de un control o sea por lo menos uno cargado
If Controles.Count > 1 Then
 ' Cuenta cada control cargado
 For Each Control_item In Controles
  ' Omite el control padre porque no puede ser eliminado
  If Control_item.Index > 0 Then
   Call Unload(Control_item)
  End If
 Next Control_item
 Descarga_controles = True
Else
 ' No se descargaron los controles ya que no se encontró ninguno
 Descarga_controles = False
End If
End Function


después lo pasé por:
Código (vb) [Seleccionar]
Call Descarga_controles(Check_visual) ' test
MsgBox Check_visual.Count
'If Check_visual.Count > 1 Then
' For Cuenta = 1 To Check_visual.Count - 1
'  Unload Check_visual(Cuenta)
' Next Cuenta
'End If


para poder testear y me lanzó error porque e grupo de controles checkbox no era de tipo controls.
Supuse que controls se referiría a controles varios indexados pero me equiboqué, tampoco puedo decirle controles as checkbox porque tambien necesito procesar textbox e image, etc y no es uno sino varios.

Como podría hacerlo en este caso?
#3723
ahora veo porque no funcionaba, tu le pasas arrays y yo variantes  :P

edito:
bueno me aburrí, traté de pasar de variantes a array como una variable temporal antes de procesar pero tenia el mismo problema si la variante estaba vacia, decia que los tipos no coincidian porque se considera la variante como un string nulo y tampoco puedo devolver arrays desde una función porque tendria que declararlo como string y hacerle redim a la función con string_r() as string y eso no se puede asi que me resigné y voy a tener que utilizar errores forzados para hacer las comprobaciones como decia blackzero.
talves por eso todo lo de windows funciona a base de errores xD

Código (vb) [Seleccionar]
Public Function Es_Array(Array_data) As Boolean
On Error GoTo Error
If UBound(Array_data) > 0 Then
 Es_Array = True
 Exit Function
End If
Error:
Es_Array = False
End Function


Gracias por el tiempo.
#3724
Hola,
estaba haciendo este proyecto y me puse de metano usar control de errores ya que quiero que mi programa pueda estar preparado ante cualquier defecto y aprender mas, asi que no quisiera tomar por opción forzar un error para saber si el array existe o no asi que tomé la segunda opción que fue como dijo seba123neo:

form:
Código (vb) [Seleccionar]
If Not Es_Array(Imagenes) Then
 Estado_1.Caption = "No se han localizado imagenes"
 Exit Function
End If


Strings.bas:
Código (vb) [Seleccionar]
Private Declare Function ArrPtr Lib "msvbvm60" Alias "VarPtr" (arr() As Any) As Long
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDst As Any, pSrc As Any, ByVal ByteLen As Long)

' .........

Public Function Es_Array(Array_data) As Boolean
Dim vValorMemoria As Long
CopyMemory vValorMemoria, ByVal VarPtr(Array_data) + 8, ByVal 4
CopyMemory vValorMemoria, ByVal vValorMemoria, ByVal 4
Es_Array = (vValorMemoria <> 0)
End Function

' ..........


Cuando lo hecho a correr me funciona bién la comprobación cuando si hay valor en el array pero cuando no hay valor el IDE de visual basic se cae lanzando el drwin y cerrandome la ventana.


Probaré la otra opción con copymemory


Código (vb) [Seleccionar]
Private Sub Form_Load()
    Dim ArrayPrueba() As String
    Dim CadenaPrueba As String

    CadenaPrueba = "hola,como,va"

    If ((Not ArrayPrueba) = -1) Then
        MsgBox "No esta Inicializado"
    Else
        MsgBox "Si esta Inicializado"
    End If

    ArrayPrueba = Split(CadenaPrueba, ",")

    If ((Not ArrayPrueba) = -1) Then
        MsgBox "No esta Inicializado"
    Else
        MsgBox "Si esta Inicializado"
    End If
End Sub


Acá me dice que no coinciden los tipos pero es raro porque si le estoy enviando la variante

form:
Código (vb) [Seleccionar]

Imagenes = Obtiene_imagenes(Text1.Text)

If Not Es_Array(Imagenes) Then
  Estado_1.Caption = "No se han localizado imagenes"
  Exit Function
End If


Archivos.bas:
Código (vb) [Seleccionar]
Public Function Obtiene_archivos(Ruta_expreg As String) As String
Dim Archivo As String, temp As String
Archivo = Dir(Ruta_expreg)
While Archivo <> ""
  Archivo = Dir
  If Es_String(Archivo) Then
   Obtiene_archivos = Obtiene_archivos & Archivo & ","
  End If
Wend
End Function

Public Function Obtiene_imagenes(Ruta As String) As Variant
Dim Archivos As String, Imagenes As Variant, Cuenta As Integer, Buffer As String

' Obtiene el listado de imagenes con posibles extensiones
Archivos = _
  Obtiene_archivos(Ruta & "*.jpg") & _
  Obtiene_archivos(Ruta & "*.jpeg") & _
  Obtiene_archivos(Ruta & "*.png") & _
  Obtiene_archivos(Ruta & "*.gif")

' Separa en array
Imagenes = Split(Archivos, ",")
 
' Procesa una por una
For Cuenta = 0 To UBound(Imagenes) - 1
  ' Filtra imagenes de hasta 1.5 MB solamente
  If FileLen(Ruta & Imagenes(Cuenta)) < 1500000 Then
   Buffer = Buffer & Imagenes(Cuenta) & ","
  End If
Next Cuenta

' Retorna solamente si hay imagenes válidas
If Es_String(Buffer) Then
  Obtiene_imagenes = Split(Buffer, ",")
End If
End Function



Algo pasa que me está dando conflictos en los tipos
#3725
Hola, tengo un array de datos que varía por lo tanto lo hize variante.
Mas abajo en el código hize un loop para obtener cada variante y procesar los datos pero cuando la variante está vacia marcaría error por lo tanto le puse el siguiente código para verificar si realmente hay variante o no antes de procesar:

Código (vb) [Seleccionar]
If UBound(Imagenes) = 0 Then
  Estado_1.Caption = "No se han localizado imagenes"
  Exit Function
End If


Pero resulta que UBound solo procesa variantes o arrays existentes, por eso me da error cuando esta vacio, por o tanto esa verificación no me sirve.

Como lo puedo hacer?

Y aprovechando el mismo tema... como puedo saber si un control está cargado? por ejemplo image(6).picture como index de 6 sin tener que hacer un for each en cada verificación.

Supongo que habrá alguna función o algo que verifique si alguno de esos dos casos existe, en casoc ontrario tendría que hacer una funcion con un foreach y comenzar a verificar el index contra el valor del index a comprobar  :-\
#3726
SMF si es seguro, no existe un sistema que sea 100% seguro, solo es cosa de elegir los mejores y smf es bueno. Así como smf tiene fallas vbulletín tambien los tiene y phpbb tambien, ipboard, phorum, etc.

Para mi SMF, vbulletín e invasión power board son los mejores que hay.
#3727
PHP / Re: ayuda insert hosting
9 Octubre 2009, 22:40 PM
Hola, podrías haber puesto ese tema en el foro de php
#3728
hola, si es un tanto necesario porque se muestra en un frame rectangular en la parte superior en forma de presentación y utilizo ‭‬javascript para darle mas diseño aunque ya habia tratado de usar un listview con imagenes en miniatura pero se veian mal porque se cargaban en 16 colores


asi va quedando, el problema es que a partir desde las 300 imagenes ya comienza a frizarse xD pero veré como lo arreglo.

Lo del frame tampoco me sirvió asi que lo puse dentro de un picturebox como me recomendaron para poder eliminar los bordes

el html lo hize de diseño con el mismo color de fondo que el formulario, para simular que forma parte de uno solo
#3729
talves puedas reemplazar la bios.

Supongo que esas bios se conectan a un servidor para dar a conocer tus datos pero para eso necesitas estar conectado y para eso necesitas tener un sistema operativo instalado por lo tanto ese programa debe interactuar con el sistema operativo y estoy un 90% seguro que solamente soporta windows y otro 90% seguro que fue diseñado pensado en windows vista ya que hay que recordar que habian algunas lap que incrustaban un codigo en la bios para la activación correcta de windows pero si es así entonces te lo puedes pasar por el culo utilizando linux :P o creando un loader similar al activador de windows 7 para que la bios no pueda tener acceso al sistema operativo.

edito::
http://support.euro.dell.com/support/edocs/systems/Op745/sp/UG_SP/advfeat.htm
desde la bios si se puede deshabilitar, por lo menos en las dell
#3730
 :P incluso habia pensado en ponerlo dentro de un frame para que quedara mas bonito pero pensaba que habia algo nativo