Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Posición Columna en ListView (https://www.clubdelphi.com/foros/showthread.php?t=15635)

Igna 29-10-2004 16:44:35

Posición Columna en ListView
 
Hola.

¿Alguien sabe como leer la posición de una columna en un ListView?.

En teoría con la propiedad index del TListColumn me valdría, pero si yo cambio la posición de la columna "clave" (aquella que contiene los items, no los subitems), cuando accedo a su propiedad index me sigue saliendo =0, y, obviamente, las posición de las demás columnas ya no se corresponden con su propiedad index.

Lo que quiero saber es si hay algún medio de conocer la posición de la columna en el ListView con visualización vsReport aunque cambie la columna de posición.

Espero haberme explicado más o menos bien.

Un saludo, y gracias.

Ricardosml 31-10-2004 02:09:18

Posible solución
 
Hola
Yo no usé en mucho este control, por lo que no conozco todas sus propiedades y métodos, pero lo que se me ocurre que puedes hacer un ciclo sumando en ancho de las columnas anteriores:

function TForm1.DarPosicion(n:integer):integer;
var
sum,i:integer;
begin
sum:=0;
i:=1;
while (i<=n) and (i<ListView1.Columns.Count) do
begin
sum:=sum+ListView1.Column[i-1].Width;
i:=i+1;
end;
result:=sum;
end;

Donde n es la posicion que quieres averiguar;
Espero que esta solución se sirva.

Igna 02-11-2004 13:40:14

Gracias por responder Ricardosml, pero no es eso lo que necesito.

Yo no quiero saber la posición en la pantalla, lo que quiero saber es el número de columna que es. Es decir, si al principio tengo tres columnas más o menos así:

columna1 | columna2 | columna3

e intercambio la posición de columna1 y columna2 tal que así:

columna2 | columna1 | columna2

quiero que al seleccionar la columna1 (en el evento OnColumnClick), pueda leer el caption de esa columna. El problema es que para el ListView, el index de la columna1 sigue siendo el 0, por lo que si utilizo Column.Caption o Columns[column.index], me aparece el caption de la columna que en ese momento está en la primera posición (en este caso columna2). Utilizo el caption para ordenar el ListView dependiendo del campo seleccionado, por eso necesito leerlo.

De todas formas, gracias por responder.


La franja horaria es GMT +2. Ahora son las 22:26:41.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi