Oct 292009
 

Este es un módulo con una función para poder insertar imágenes de todo tipo en un ImageList de los Microsoft Common Controls, tanto para la versión 5.0 o 6.0.
El módulo sólo tiene la función para leer desde archivos, faltaría agregarle la opción para leer desde recursos, si a alguien le interesa pueden comunicarlo.
Para la versión 6.0, a quienes no le funcione, les recomiendo descargarse la última actualización aquí.

Insertar imágenes png en un ImageList

Oct 262009
 

Se trata de dos controles de usuario realizados por Cobein los cuales me han gustado mucho y con su permiso los publico aquí, como sus nombres bien lo dicen uno es para mostrar imágenes de todo tipo PNG, ICO, GIF, JPG, Etc. inclusive darle efectos de brillo, rotación en todos los sentidos, transparencia, escala de grises, contraste. Y el otro es un ImageList (para los que no saben de que se tratan los ImageList, son controles donde se almacenan una lista de imágenes para luego poder aplicarlas en otro control), este también tiene soporte para todos los tipos de imágenes antes mencionadas.
Para los que ya conocían este control se ha solucionado el problema que tenía en el incremento progresivo del uso de la memoria. También le he agregado una propiedad para reconocer las regiones de la imágen (Créditos a LaVolpe) y una función para poder mostrar imágenes desde la web (incluye progreso de carga).

ucImage y ucImageList

Oct 212009
 

Este es un Control de Usuario que permite listar todas las imágenes dentro de una carpeta o subcarpetas con un parecido al que utiliza Windows pero con algunas opciones extras para poder personalizarlo a gusto.
Las imágenes no las carga en la memoria sino que las va leyendo cada vez que se desliza hacia otra imágen, esto tiene como ventaja ahorrar el uso de la memoria y como desventaja más consumo del procesador (sólo en el momento en que carga las imágenes).
Algunas propiedades de este control nos permite elegir una selección personalizada, un marco personalizado, color de borde, texto con sombra, entre otras.
También cuenta con un ToolTip con la información de la imágen (este requiere que estén habilitados los temas de Windows en el proyecto).

ImageSlide

Oct 062009
 

Una función para tener siempre a mano, sobre todo para cuando trabajemos con hdc en memoria.

Option Explicit
Private Declare Function OleTranslateColor Lib "oleaut32.dll" (ByVal lOleColor As Long, ByVal lHPalette As Long, lColorRef As Long) As Long
Private Declare Function CreatePen Lib "gdi32.dll" (ByVal nPenStyle As Long, ByVal nWidth As Long, ByVal crColor As Long) As Long
Private Declare Function MoveToEx Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long, ByVal lpPoint As Long) As Long
Private Declare Function DeleteObject Lib "gdi32.dll" (ByVal hObject As Long) As Long
Private Declare Function SelectObject Lib "gdi32.dll" (ByVal hdc As Long, ByVal hObject As Long) As Long
Private Declare Function LineTo Lib "gdi32.dll" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long) As Long
 
 
Public Sub DrawLine(ByVal hdc As Long, _
                    ByVal X1 As Long, _
                    ByVal Y1 As Long, _
                    ByVal X2 As Long, _
                    ByVal Y2 As Long, _
                    Optional ByVal Color As Long = -1, _
                    Optional ByVal BorderWidth As Long = 1)
 
    Dim hPen As Long
    Dim TransColor As Long
    Dim OldPen As Long
 
    If Color <> -1 Then
        Call OleTranslateColor(Color, 0&, TransColor)
        hPen = CreatePen(0, BorderWidth, TransColor)
        OldPen = SelectObject(hdc, hPen)
    End If
 
    If X1 >= 0 Then
        MoveToEx hdc, X1, Y1, 0
    End If
 
    LineTo hdc, X2, Y2
 
    If hPen <> 0 Then
        SelectObject hdc, OldPen
        DeleteObject hPen
    End If
 
End Sub
 Publicado por a las 8:14  Tagged with: