FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
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:
procedure TfConfig.ListViewSelectItem(Sender: TObject; Item: TListItem; Selected: Boolean); begin lCanalSeleccionat.Caption := Item.SubItems.Strings[1]; end; |
#2
|
||||
|
||||
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)
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#3
|
|||
|
|||
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; 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; adelantado. |
#4
|
||||
|
||||
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.
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#5
|
|||
|
|||
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. |
|
|
|