Ver Mensaje Individual
  #2  
Antiguo 05-11-2007
abracadabra abracadabra is offline
Miembro
 
Registrado: jul 2005
Posts: 30
Reputación: 0
abracadabra Va por buen camino
Hola gente!!!!
Finalmente encontré la solución al problema.
Para mover columnas es necesario hacer una llamada al mensaje LVM_SETCOLUMNORDERARRAY, el codigo es el siguiente:

SendMessage(ListView1.Handle,LVM_SETCOLUMNORDERARRAY,numcols,lparam(@arregloCols));
ListView1.Invalidate

donde numcols representa el número de columnas que tiene el control listview.
arregloCols: Es un arreglo que contiene los índices de las columnas en el orden que se desea establecer.
Al final se hace un ListView1.Invalidate para que repinte el control ya que si no se hace esto se observa que lo único que cambia es el orden de las columnas en el header pero no de toda la lista.

Ejm:
Sea el ListView con las siguientes columnas
columna0|columna1|columna2|columna3|columna4|

Pero se quiere que el orden sea
columna4|columna2|columna0|columna1|columna3|

Entonces lo primera que hacemos es crear un arreglo con el orden que se quiere establecer es decir:
arregloCols = [4,2,0,1,3]
(Este arreglo se crea con las declaraciones e instruccioens utilizada para el manejo de arreglos)

finalmente se ejecutan las líneas de código especificadas lineas arriba:

SendMessage(ListView1.Handle,LVM_SETCOLUMNORDERARRAY,5,lparam(@arregloCols));
ListView1.Invalidate;
Responder Con Cita