Asunto: Uso de TListView, fila seleccionada, nueva fila
Quiero utilizar el componente de Delphi TListView, pero no sé cómo insertar una fila ni cómo obtener el valor de la fila actual seleccionada por el usuario.
Publicado:
Jue Jun 04, 2009 5:37 am
alonsojpd Administrador/Moderador
Registrado: Sep 16, 2003 Mensajes: 2687
Asunto: Re: Uso de TListView, fila seleccionada, nueva fila
Anuncios
varios escribió:
Quiero utilizar el componente de Delphi TListView, pero no sé cómo insertar una fila ni cómo obtener el valor de la fila actual seleccionada por el usuario.
Aquí te mostramos un ejemplo de cómo añadir filas a un ListView, en este caso el ListView tiene como propiedad "Name": lsReasignaciones. Y tiene tres columnas (que hemos añadido en tiempo de diseño): "Código", "De", "Para":
Código:
var
ListItem : TListItem;
try
md.tc5.Open;
while not md.tc5.Eof do
begin
ListItem := lsReasignaciones.Items.Add;
ListItem.Caption := md.tc5.fieldbyname('codigo').AsString;
ListItem.SubItems.Add(md.tc5.fieldbyname('de').AsString);
ListItem.SubItems.Add(md.tc5.fieldbyname('para').AsString);
ListItem.SubItems.Add(md.tc5.fieldbyname('fecha').AsString);
md.tc5.Next;
end;
except
md.tc5.Close;
raise;
end;
md.tc5.Close;
Como ves, la primera columna se añade con un ".Caption", el resto con "SubItems.Add".
Por otro lado, "md.tc5" es un TQuery.
Para obtener el valor de la fila seleccionada:
Código:
procedure TformGIncidencia.lsReasignacionesDblClick(Sender: TObject);
begin
if lsReasignaciones.ItemIndex = -1 then
begin
MessageDlg('Debe seleccionar una reasignación.',
mtWarning, [mbok], 0);
tabAsignacion.Show;
lsReasignaciones.SetFocus;
end
else
begin
vtCodigoLog := StrToInt(lsReasignaciones.Items.Item[lsReasignaciones.ItemFocused.Index].Caption);
if permisosMenuUsuario (vtCodigoUsuario,
vtNumIncidencia, vtPermisoLectura, true) then
begin
application.createform(TFormIncidenciaLog, FormIncidenciaLog);
FormIncidenciaLog.Tag := tTabla.fieldbyname('codigo').AsInteger;
FormIncidenciaLog.Caption :=
'Reasignaciones de la incidencia [' +
tTabla.fieldbyname('codigo').AsString + ']';
FormIncidenciaLog.showmodal;
end;
end;
end;
Puede publicar nuevos temas en este foro No puede responder a temas en este foro No puede editar sus mensajes en este foro No puede borrar sus mensajes en este foro No puede votar en encuestas en este foro
Visita nuestro nuevo sitio web con programas y contenidos actualizados: Proyecto A