Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Elemento seleccionado de un ListView (https://www.clubdelphi.com/foros/showthread.php?t=22189)

Tecnic2 08-06-2005 19:54:38

Elemento seleccionado de un ListView
 
Hola a todos,

Tengo un ListView que lleno con datos de un fichero y quiero que al darle a un botón "modificar" per guarde el valor de la columna 1 en una variable de tipo string. Lo he programado per siempre me aparece el valor del primer item, y no del seleccionado.

Alguien me puede decir por qué ?

Código para llenar el ListView:

Código:

ListView.Clear;
        for i := 0 to LlistaSeccions.Items.Count -1 do
          begin
                FitxerIniCanals.ReadSectionValues(LlistaSeccions.Items.Strings[i], LlistaValors.Items);
                with ListView.Items.Add do
                  begin
                        caption := RightStr(LlistaValors.Items.Strings[0], Length(LlistaValors.Items.Strings[0]) - 7);
                        SubItems.Add(RightStr(LlistaValors.Items.Strings[1], Length(LlistaValors.Items.Strings[1]) - 11));
                        SubItems.Add(LlistaSeccions.Items.Strings[0]);
                  end;
          end;

Código para seleccionar coger el valor del elemento

Código:

procedure TfConfig.ListViewSelectItem(Sender: TObject; Item: TListItem; Selected: Boolean);
begin
        lCanalSeleccionat.Caption := Item.SubItems.Strings[1];
end;


delphi.com.ar 08-06-2005 20:11:19

No entiendo mucho tu código, pero me parece que en lugar de hacer referencia a LlistaValors.Items tendrías que hacer referencia a LlistaValors.SelectedItem (pregutando anteriormente si esta asignado)

Tecnic2 09-06-2005 09:19:00

Aclaración de código
 
Perdonad las molestias, me voy a explicar.....
Tengo un ListView, el que lleno con información de un fichero INI.
Primero lleno el ListBox1 con el nombre de las secciones, luego
empiezo a recorrer éste ListBox y para cada sección voy cargando
todos sus valores en el ListBox2, acto seguido cojo los valores
que me interesan de éste ListBox2 y con éllos lleno el ListView.
Una vez llenado es cuando con el evento ListViewSelectItem intento
saber qué item me han seleccionado para modificar, pero el problema
está en que por mucho que seleccione otro item, siempre me coge
el valor del primer item en lugar del que yo selecciono.Aqui lleno el ListView.....
Código:

ListView.Clear;FicheroIni.ReadSections(ListBox1.Items);
for i := 0 to ListBox1.Items.Count -1 do  begin    FicheroIni.ReadSectionValues(ListBox1.Items.Strings[i], ListBox2.Items);    with ListView.Items.Add do      begin        caption := ListBox2.Items.Strings[0];        SubItems.Add(ListBox2.Items.Strings[1]);        SubItems.Add(ListBox2.Items.Strings[2]);      end;  end;

....y aqui intento asignar a una variable de tipo string el
valor de la 3a columna del ListView del item seleccionado, aunque
siempre me coge el del 1r item:
Código:

procedure TfConfig.ListViewSelectItem(Sender: TObject; Item: TListItem; Selected: Boolean);
begin
  VariableString := Item.SubItems.Strings[1];
end;

Espero que con ésto haya aclarado las cosas, muchas gracias por
adelantado.

Lepe 09-06-2005 14:38:01

Código Delphi [-]
procedure TfConfig.ListViewSelectItem(Sender: TObject; Item: TListItem; Selected: Boolean);
begin
  VariableString := Item.SubItems.Strings[2];
end;

No sería Strings[2], se supone que el primer subItem empieza en el índice 0, el segundo es la tercera columna.

¿Cierto? ;)

PD: en lugar de usar la palabra "code" para postear tu código, usa la palabra "delphi" la próxima vez.

Un saludo.

Tecnic2 09-06-2005 16:09:29

Respuesta....
 
Pues no porque aunque haya 3 datos a mostrar en 3 columnas, la verdad es que la 3a columna es la 1, ya que la primera columna es el caption y la 2a columna es el item 0.

Aunque gracias por contestar.


La franja horaria es GMT +2. Ahora son las 16:29:42.

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