elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


  Mostrar Mensajes
Páginas: 1 ... 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 [45] 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 ... 128
441  Programación / Programación Visual Basic / [SRC] cListBoxMultiAlign [by Mr. Frog ©] en: 15 Diciembre 2010, 00:38 am
Os dejo mi ultima clase que sirve para justificar texto en un ListBox, la novedad es que puedes actuar sobre especificamente con cada Item, dejo el código:

Código
  1. Option Explicit
  2. '==================================================================================================
  3. ' º Class     : MultiAlignListBox.cls
  4. ' º Version   : 1.1
  5. ' º Author    : Mr.Frog ©
  6. ' º Country   : Spain
  7. ' º Mail      : vbpsyke1@mixmail.com
  8. ' º Date      : 14/12/2010
  9. ' º Twitter   : http://twitter.com/#!/PsYkE1
  10. ' º Tested on : WinXp & Win7
  11. ' º Greets    : LaVolpe & Raul338 & BlackZer0x & Karmany
  12. ' º Reference : http://www.elguille.info/colabora/vb2006/karmany_centrartextolistbox.htm
  13. ' º Recommended Websites :
  14. '       http://visual-coders.com.ar
  15. '       http://InfrAngeluX.Sytes.Net
  16. '==================================================================================================
  17.  
  18. Private Declare Function GetDialogBaseUnits Lib "user32" () As Long
  19. Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
  20. Private Declare Function ReleaseDC Lib "user32" (ByVal hwnd As Long, ByVal hDC As Long) As Long
  21. Private Declare Function GetClientRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
  22. Private Declare Function SelectObject Lib "gdi32" (ByVal hDC As Long, ByVal hObject As Long) As Long
  23. Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
  24. Private Declare Function GetTextExtentPoint32 Lib "gdi32" Alias "GetTextExtentPoint32A" (ByVal hDC As Long, ByVal lpString As String, ByVal cbString As Long, lpSize As SIZE) As Long
  25.  
  26. Private Type RECT
  27.    Left    As Long
  28.    Top     As Long
  29.    Right   As Long
  30.    Bottom  As Long
  31. End Type
  32.  
  33. Private Type SIZE
  34.    cX      As Long
  35.    cY      As Long
  36. End Type
  37.  
  38. Private Const LB_SETTABSTOPS                        As Long = &H192&
  39. Private Const WM_GETFONT                            As Long = &H31&
  40.  
  41. Private Const CHARS_LIST                            As String = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"
  42. Private Const CHARS_LEN                             As Long = &H3E&
  43.  
  44. Private myListBox                                   As ListBox
  45. Private lListhWnd                                   As Long
  46. Private lWidth                                      As Long
  47.  
  48. Public Sub SetListBox(myList As ListBox)
  49.    If Not (myList Is Nothing) Then
  50.        Set myListBox = myList
  51.        lListhWnd = myListBox.hwnd
  52.        SetRightTab
  53.    End If
  54. End Sub
  55.  
  56. Public Sub AddAlignItem(ByVal Item As String, ByVal Align As AlignmentConstants, Optional ByVal Index As Long = (-1))
  57. Dim lCenterAlign                                    As Long
  58.  
  59.    With myListBox
  60.        lCenterAlign = Int(.Width - PixelsPerUnit(Item))
  61.        If lCenterAlign < 0 Then Align = vbLeftJustify
  62.  
  63.        If Index = (-1) Then Index = .ListCount
  64.  
  65.        Select Case Align
  66.            Case vbRightJustify
  67.                .AddItem vbTab & Item, Index
  68.                If Not (lWidth = GetListSize) Then SetRightTab
  69.            Case vbCenter
  70.                .AddItem Space$(Abs(Int(lCenterAlign / PixelsPerUnit(Space$(1)) / 2) - 1.5)) & Item, Index
  71.            Case Else
  72.                .AddItem Item, Index
  73.        End Select
  74.    End With
  75. End Sub
  76.  
  77. Public Sub ChangeListBoxAlign(Optional ByVal Index As Long = (-1), Optional ByVal Align As AlignmentConstants = vbAlignLeft)
  78. Dim Q                                               As Long
  79.  
  80.    If Index > -1 Then
  81.        SetAlign Index, Align
  82.    Else
  83.        For Q = 0 To (myListBox.ListCount - 1)
  84.            SetAlign Q, Align
  85.        Next Q
  86.    End If
  87. End Sub
  88.  
  89. Public Function GetItem(ByVal Index As Long) As String
  90.    GetItem = LTrim$(myListBox.List(Index))
  91.  
  92.    If (GetItem Like (vbTab & "*")) Then
  93.        GetItem = Right$(GetItem, (Len(GetItem) - 1))
  94.    End If
  95. End Function
  96.  
  97. Private Sub SetAlign(ByVal Index As Long, ByVal Align As AlignmentConstants)
  98. Dim sItem                                           As String
  99.  
  100.    With myListBox
  101.        sItem = GetRealItem(Index)
  102.        If Not (.List(Index) = sItem) Then
  103.            .RemoveItem (Index)
  104.            AddAlignItem sItem, Align, Index
  105.        End If
  106.    End With
  107. End Sub
  108.  
  109. Private Sub SetRightTab()
  110. Dim lRightAlignTab                                  As Long
  111.  
  112.    lWidth = GetListSize
  113.    lRightAlignTab = -(lWidth / PixelsPerUnit)
  114.  
  115.    SendMessage lListhWnd, LB_SETTABSTOPS, &H0&, ByVal &H0&
  116.    SendMessage lListhWnd, LB_SETTABSTOPS, &H1&, lRightAlignTab
  117.  
  118.    myListBox.Refresh
  119. End Sub
  120.  
  121. Private Function GetListSize() As Long
  122. Dim RCT                                             As RECT
  123.  
  124.    GetClientRect lListhWnd, RCT
  125.    With RCT
  126.        GetListSize = (.Right - .Left)
  127.    End With
  128. End Function
  129.  
  130.  
  131. Private Function PixelsPerUnit(Optional ByVal sText As String) As Single
  132. Dim hDC                                             As Long
  133. Dim hFont                                           As Long
  134. Dim hFontOld                                        As Long
  135. Dim SZ                                              As SIZE
  136.  
  137.    hDC = GetDC(lListhWnd)
  138.    If CBool(hDC) = True Then
  139.        hFont = SendMessage(lListhWnd, WM_GETFONT, &H0&, ByVal &H0&)
  140.        hFontOld = SelectObject(hDC, hFont)
  141.  
  142.        If sText = vbNullString Then
  143.            If GetTextExtentPoint32(hDC, CHARS_LIST, CHARS_LEN, SZ) Then
  144.                PixelsPerUnit = CSng((2 * CLng(SZ.cX / CHARS_LEN)) / (GetDialogBaseUnits And &HFFFF&))
  145.            End If
  146.        Else
  147.            If GetTextExtentPoint32(hDC, sText, Len(sText), SZ) Then
  148.                PixelsPerUnit = (SZ.cX * Screen.TwipsPerPixelX)
  149.            End If
  150.        End If
  151.  
  152.        SelectObject hDC, hFontOld
  153.        ReleaseDC lListhWnd, hDC
  154.    End If
  155. End Function
  156.  
  157. Private Sub Class_Initialize()
  158.    Debug.Print "--> cListBoxMultiAlign.cls By Mr.Frog © <--"
  159. End Sub

Una imagen vale mas que 1000 palabras:

DoEvents! :P
442  Programación / Programación Visual Basic / Re: [Source] Efecto Luvia de TV en: 14 Diciembre 2010, 01:48 am
Jajajajaja :laugh:
Lo clavaste! :D
Pensé algo asi hace tiempo, pero usando SetPixel(), y más simple. :silbar:
A mi si que me sirve, gracias pollo! :-*

DoEvents! :P
443  Foros Generales / Foro Libre / Re: Una cosa que no sabía dónde poner (sobre el amor) en: 13 Diciembre 2010, 11:07 am
Alguien normal.
Touché ;)

DoEvents! :P
444  Programación / Programación Visual Basic / Re: [SRC] [Tip] AlignListBox [by Mr. Frog ©] en: 13 Diciembre 2010, 03:19 am
De nada... ;)
Ahora estoy acabando una cosa similar de una manera NUNCA vista. :)
Gracias por compartir Mr. Frog... Te diste por venisido con mi programa???  :laugh:
:xD
Ya lo hable con Dessa, eso solo te pasa a ti, no tengo W7 para probarlo, en Wxp ya te dije que me va bien. :silbar:

DoEvents! :P
445  Programación / Programación Visual Basic / [SRC] [Tip] AlignListBox [by Mr. Frog ©] en: 12 Diciembre 2010, 22:02 pm
Me encontre con estas constantes para alinear un ListBox e hice esta sencilla función, poner en un módulo:
Solo incluyo alineamiento de items a la derecha e izquierda, porque para centrarlos hay que hacerlo de forma diferente. :silbar:
Posteado en http://www.visual-coders.com.ar/

Código
  1. Option Explicit
  2. '=========================================================
  3. ' º Function : AlignListBox
  4. ' º Author   : Mr. Frog ©
  5. ' º Mail     : vbpsyke1@mixmail.com
  6. ' º Recommended Websites :
  7. '       http://visual-coders.com.ar
  8. '       http://InfrAngeluX.Sytes.Net
  9. '       http://twitter.com/#!/PsYkE1
  10. '=========================================================
  11.  
  12. Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
  13. Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
  14.  
  15. Private Const GWL_EXSTYLE                       As Long = (-20)
  16. Private Const WS_EX_RIGHT                       As Long = &H1000&
  17. Private Const WS_EX_LEFT                        As Long = &H0&
  18. Private Const WS_EX_LEFTSCROLLBAR               As Long = &H4000&
  19. Private Const WS_EX_RIGHTSCROLLBAR              As Long = &H0&
  20.  
  21. Public Enum AlignConstants
  22.   aLeft = 0
  23.   aRight = 1
  24. End Enum
  25.  
  26. Public Enum OptionAlign
  27.   Items = 0
  28.   ScollBar = 1
  29. End Enum
  30.  
  31. Public Function AlignListBox(ByVal myListBox As ListBox, _
  32.                               ByVal ThingToAlign As OptionAlign, _
  33.                               Optional ByVal Align As AlignConstants = aLeft) As Long
  34. Dim lStyle                                              As Long
  35. Dim lHwnd                                               As Long
  36.    If Not (myListBox Is Nothing) Then
  37.        lHwnd = myListBox.hwnd
  38.        lStyle = GetWindowLong(lHwnd, GWL_EXSTYLE)
  39.        If Align = aRight Then
  40.            If ThingToAlign = Items Then
  41.                lStyle = lStyle Or WS_EX_RIGHT
  42.            Else
  43.                lStyle = lStyle And WS_EX_RIGHTSCROLLBAR
  44.            End If
  45.        Else
  46.            If ThingToAlign = Items Then
  47.                lStyle = lStyle And WS_EX_LEFT
  48.            Else
  49.                lStyle = lStyle Or WS_EX_LEFTSCROLLBAR
  50.            End If
  51.        End If
  52.        AlignListBox = SetWindowLong(lHwnd, GWL_EXSTYLE, lStyle)
  53.    End If
  54. End Function

Ejemplo:

Código
  1. Option Explicit
  2.  
  3. Private Sub Form_Load()
  4. Dim Q                               As Long
  5.    For Q = 0 To (Screen.FontCount - 1)
  6.        List1.AddItem Screen.Fonts(Q)
  7.    Next Q
  8.  
  9.    AlignListBox List1, Items, aRight
  10.    'AlignListBox List1, Items, aLeft
  11.    AlignListBox List1, ScollBar, aLeft
  12.    'AlignListBox List1, ScollBar, aRight
  13. End Sub

Resultado:

DoEvents! :P
446  Foros Generales / Dudas Generales / Re: 72 minutos... en: 10 Diciembre 2010, 22:02 pm
Mira, te lo saltas así:
Citar
Dejar la película cargando y darle al pause (o al menos no reproducir 72 minutos porque nos saltaría el mensaje del límite). Una vez que se cargue entera (que la barra gris llegue al final), le damos al navegador a la opción de “Trabajar sin conexión” y ya le podemos dar al play y verla completa. Esta opción está en el menú “Archivo” como podéis ver a continuación:
fuente http://www.sincortespublicitarios.com/faq-de-sincortespublicitarioscom-contenido-de-ayuda/saltar-limitaciones-de-tiempo-de-megavideo-5-maneras-de-hacerlo/

DoEvents! :P
447  Programación / Programación Visual Basic / Re: [Ayuda] BorderStyle = 0-None y no pasa nada ¡!¡! en: 10 Diciembre 2010, 21:34 pm
Revisa el codigo, seguro que solo copiaste mi funcion...
Fijate en esto:
Citar
Código
  1. Private Sub Form_Activate()
  2.    Call BorderStyleNone(True)
  3. End Sub
Cada vez que se activa la ventana quita el borde, de este modo si se minimiza al activar la ventana vuelves a quitarlo.

LINK ACTUALIZADO

Un ejemplo:
http://www.mediafire.com/?vr444098o7ndn02

DoEvents! :P
448  Programación / Programación Visual Basic / Re: [Ayuda] BorderStyle = 0-None y no pasa nada ¡!¡! en: 10 Diciembre 2010, 15:57 pm
.
Sorry :silbar:
Lo actualicé... de nuevo.  ;)
Mira a ver si así funciona... :rolleyes:

DoEvents! :P
449  Programación / Programación Visual Basic / Re: [Ayuda] BorderStyle = 0-None y no pasa nada ¡!¡! en: 10 Diciembre 2010, 15:08 pm
Ya verás Raul!!  :(  :laugh:
Tenia la funcion hecha dde otro proyecto, de ahi lo de SetWindowsPos. :silbar:

Ya edité el post... :P

DoEvents! :P
450  Programación / Programación Visual Basic / Re: [Ayuda] BorderStyle = 0-None y no pasa nada ¡!¡! en: 10 Diciembre 2010, 09:07 am
.
Yo uso WinXP y creo que me iva bien... :-\

Respuesta definitiva que soluciona el tema :  :xD
Código
  1. Option Explicit
  2.  
  3. Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
  4. Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
  5.  
  6. Private Const GWL_STYLE                 As Long = (-16)
  7. Private Const WS_CAPTION                As Long = &HC00000
  8.  
  9. Private Function BorderStyleNone(ByVal bValue As Boolean) As Long
  10. Dim lStyle                              As Long
  11.    lStyle = GetWindowLong(Me.hWnd, GWL_STYLE)
  12.    If bValue Then
  13.        lStyle = lStyle Xor WS_CAPTION
  14.    Else
  15.        lStyle = lStyle Or WS_CAPTION
  16.    End If
  17.    BorderStyleNone = SetWindowLong (Me.hWnd, GWL_STYLE, lStyle)
  18. End Function
  19.  
  20. Private Sub Form_Activate()
  21.    Call BorderStyleNone(True)
  22. End Sub

DoEvents! :P
Páginas: 1 ... 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 [45] 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 ... 128
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines