Foros Club Delphi

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

roman 16-02-2010 17:10:07

ListView e ItemIndex
 
Hola,

Noto un comportamiento extraño con el ListView, a ver si a alguien se le ocurre algo.

En un formulario tengo un ListView en modo vsReport con unos cuanto ítemes:



El único código que tengo es en el OnShow:

Código Delphi [-]
procedure TForm1.FormShow(Sender: TObject);
begin
  ListView1.ItemIndex := 0;
end;

Al ejecutar, aparece seleccionado el primer elemento (como debe ser) y el foco del teclado lo tiene el ListView. Sin embargo, al presionar la tecla de dirección hacia abajo, no pasa nada; sólo la segunda vez que la presiono, la selección cambia al segundo elemento.

Si en el OnShow pongo ItemIndex en algún otro elemento:



al presionar por primera vez la tecla de dirección hacia abajo, lo que sucede es que la selección se mueve hacia el primer elemento, y a partir de ahí ya se recorre normalmente.

¿Alguien sabe qué ocurre y cómo puede solucionarse?

Trabajo con Delphi 7 en Windows Vista.

// Saludos

roman 16-02-2010 18:13:28

Gracias por su atención :D

Al parecer, no basta seleccionar el ítem, además hay que ponerle el foco:

Código Delphi [-]
ListView1.ItemIndex := n;
ListView1.Selected.Focused := true;

// Saludos

Neftali [Germán.Estévez] 16-02-2010 18:13:29

AÑADO/EDITO: Parece que llegué tarde... ;)

Me da la impresión de que está Selected, pero no Focused y la primera pulsación le asigna el foco.

Prueba con esto en el OnShow:

Código Delphi [-]
var
  li:TListItem;
begin
  li := ListView1.Items[0];
  li.Selected := True;
  li.Focused := True;

roman 16-02-2010 18:14:55

Gracias Neftali. Tu futura respuesta me sirvió mucho :D

// Saludos

Neftali [Germán.Estévez] 16-02-2010 18:21:07

Cita:

Empezado por roman (Mensaje 354099)
Gracias Neftali. Tu futura respuesta me sirvió mucho :D

:D:D:D:D
Estábamos trabajando en Universos paralelos, que no llegaron a encontrase a tiempo...;)


La franja horaria es GMT +2. Ahora son las 18:00:39.

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