Autor Tema: JGrid - Reemplazo a ListView  (Leído 491 veces)

0 Usuarios y 1 Visitante están viendo este tema.

J. Elihu

  • Bit
  • Mensajes: 8
  • Reputación: +2/-0
    • Ver Perfil
JGrid - Reemplazo a ListView
« en: Abril 29, 2020, 05:49:01 pm »
Siempre he sido enemigo del ListView, porque no siempre se adapta a lo que quiero, debido a eso decidí hacer un grid a mi gusto, un control con algo mas de personalización y estetica. el control es casi como una version mas liviana de algunos grids que hay en la web, con la ventaja que no lleva dependecias.



El control tiene casi todas las propiedades básicas para un grid, dejo un pequeño ejemplo sobre su uso y el codigo fuente del mismo. El grid no permite agrupar items, reordenar las columnas, ni ocultar y mostrar columnas. Lo de reordenar y ocultar columnas estaban implementadas en una version anterior, pero queria que esta version fuera mas liviana y tuviera todo lo básico y necesario.

El Grid tambien es editable y tiene una rutina para reordenar los items en orden ascendente y descendente para cualquier columna, hay un ejemplo sobre como implementarlo.



Creo que hay algunas partes que pueden perfeccionarse, como por ejemplo el skin para el header.
dejo parta que ustedes mismos lo vean y hagan sus sugerencias.

https://mega.nz/file/E0lxhaqZ#W7wdUzZg1BLxklBvJvszd6wBSLeXe66sKj7EYq-L5e8

PD: Se puede implementar el modo de vista LargeIcons como el del ListView, pero aun no le vi tanta utilidad.

Saludos!

*****************************************************************************
Edit:

BUGS FIXED:

Se ha arreglado los errores anteriores y a pedido de [AxioUk], se ha implementado la función MergeColumns, subclasificando el header y dibujando sobre el. Si no se desea la funcion MergeColumns borre todo lo relacionado a MergeColumns, variables, funciones, que no es demasiado. El Skin funciona mejor cuando esta compilado y con los temas de windows aplicados. Nuevamente reporten los errores. :) :)



https://mega.nz/file/140h3aAb#-iAoUActPfbk6T6zgSUqStEpO2iW76D8yW2fjxjbFj4

Saludos!
« última modificación: Mayo 15, 2020, 10:33:16 pm por J. Elihu »

LeandroA

  • Administrador
  • Petabyte
  • *****
  • Mensajes: 1090
  • Reputación: +147/-8
    • Ver Perfil
Re:JGrid - Reemplazo a ListView
« Respuesta #1 en: Abril 30, 2020, 07:16:58 pm »
Muy bueno Edu, a eso le llamamos en el grupo hecho a lo macho con pelos en el pecho, jaja , muy bien esta todo el grid desde 0 a puro codigo, pensé que utilizaba la clase syslistview32 con apis y esas cosas. siempre quise hacer algo asi para hacerlo personalizado, pero es algo tedioso programarlo, si bien con el syslistview logre muchas cosas siempre me topo con algo que no me gusta, me paso sobretodo con la selección cuando uso custom draw.

si tendria que hacer una observación sobre el tu grid es simplemente un retardo en repintar cuando moves el mouse o haces scroll, pero no se si esto esta hecho aproposito para que evitar un repintado excesivo. lo demas esta perfecto.


Gracias por compartir!

xxdoc

  • Bytes
  • *
  • Mensajes: 15
  • Reputación: +0/-0
    • Ver Perfil
Re:JGrid - Reemplazo a ListView
« Respuesta #2 en: Mayo 03, 2020, 07:35:16 am »
Private Declare Function OleTranslateColor Lib "oleaut32.dll" (ByVal lOleColor As Long, ByVal lHPalette As Long, ByVal lColorRef As Long) As Long
Private Declare Function OleTranslateColor2 Lib "olepro32.dll" Alias "OleTranslateColor" _
    (ByVal OLE_COLOR As Long, _
    ByVal hPalette As Long, _
    pccolorref As Long) As Long
           
'''''''FIX IF select systemcolor
If m_Striped And lRow Mod 2 Then
            Dim clrref As OLE_COLOR
            OleTranslateColor2 m_StripedColor, 0, clrref
           
                DrawBack uDC, clrref, iRct
            End If

J. Elihu

  • Bit
  • Mensajes: 8
  • Reputación: +2/-0
    • Ver Perfil
Re:JGrid - Reemplazo a ListView
« Respuesta #3 en: Mayo 03, 2020, 02:35:15 pm »
Ok, gracias  :) :)

AxioUK

  • Megabyte
  • ***
  • Mensajes: 107
  • Reputación: +17/-1
  • Modulos GSL
    • Ver Perfil
Re:JGrid - Reemplazo a ListView
« Respuesta #4 en: Mayo 16, 2020, 03:40:00 pm »
Mil Gracias Amigo, funciona impecablemente...


_____________________________
Sé un poco de todo y mucho de nada... ;)

LeandroA

  • Administrador
  • Petabyte
  • *****
  • Mensajes: 1090
  • Reputación: +147/-8
    • Ver Perfil
Re:JGrid - Reemplazo a ListView
« Respuesta #5 en: Mayo 18, 2020, 07:00:44 pm »
Muy buena la actualizacion, ahora repinta mucho mas rápido al pasar el mouse, y no se como habras hecho para repintar de esa forma el columnheader quedo muy bien!