Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-06-2005
Tecnic2 Tecnic2 is offline
Miembro
 
Registrado: may 2004
Posts: 155
Poder: 20
Tecnic2 Va por buen camino
Unhappy 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;
Responder Con Cita
  #2  
Antiguo 08-06-2005
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 26
delphi.com.ar Va por buen camino
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.
Responder Con Cita
  #3  
Antiguo 09-06-2005
Tecnic2 Tecnic2 is offline
Miembro
 
Registrado: may 2004
Posts: 155
Poder: 20
Tecnic2 Va por buen camino
Post 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.
Responder Con Cita
  #4  
Antiguo 09-06-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
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.
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #5  
Antiguo 09-06-2005
Tecnic2 Tecnic2 is offline
Miembro
 
Registrado: may 2004
Posts: 155
Poder: 20
Tecnic2 Va por buen camino
Post 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.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 04:03:25.


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
Copyright 1996-2007 Club Delphi