Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Trabajando con ListView (https://www.clubdelphi.com/foros/showthread.php?t=67409)

Ledian_Fdez 15-04-2010 23:01:39

Trabajando con ListView
 
Holas amigos de este foro:

Tengo una aplicación en Delphi7, donde utilizo un ListView con 4 columnas (No, Nombre, CI, Sexo) y necesito guardar en variables el contenido de los campos según la fila seleccionada.

Tengo algo como esto:

Código Delphi [-]
procedure Form1. ListView1SelectItem(Sender: TObject;
  Item: TListItem; Selected: Boolean);
begin
 if Selected then
   begin
    No := Item.Caption;
    Nombre := Item.SubItems.GetText;
    //CI := 
    //Sexo := 
   end;
end;

No se como gurdar los valores en CI y Sexo, ademas que en la variable Nombre lo que me guarda es lago como esto ..

Cita:

33
Ledian
81040405227
M
Y al asignarcelo a un edit :

Código Delphi [-]
Edit2.Text := Nombre;

Lo que se muestra en el text es esto:
Cita:

33||Ledian||81040405227||M||
Gracias de antemano y en espera de su respuesta ..

Un Delphiano

delphi.com.ar 15-04-2010 23:16:37

Si no te entiendo mal, esto es lo que buscas:
Código Delphi [-]
procedure Form1. ListView1SelectItem(Sender: TObject;
  Item: TListItem; Selected: Boolean);
begin
 if Selected then
   begin
    No := Item.Caption;
    Nombre := Item.SubItems[0];
    CI := Item.SubItems[1];
    Sexo := Item.SubItems[2];
   end;
end;
Pero tienes que tener la precaución de cargar valores para todos los subitems, o tendrás que preguntar línea por línea si el subindex es menor que la cantidad de items.

Saludos!

Lord Delfos 15-04-2010 23:22:22

Por cierto:

GetText te devuelve todas las columnas (menos la primera) como en una sola cadena de texto. Cada columna es separada con enters, por eso te aparece el texto con "||".

Si querés obtener todo el texto junto, pero sin enters, podrías hacer algo así:

Código Delphi [-]
Texto:= Item.SubItems.GetText;
Texto:= AnsiReplace(Texto, #13#10, ' ');

Es decir, reemplazás todas las apariciones del enter por un espacio.

Saludongos.


La franja horaria es GMT +2. Ahora son las 18:11:17.

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