Ver Mensaje Individual
  #3  
Antiguo 28-03-2016
jhonalone jhonalone is offline
Miembro
 
Registrado: sep 2007
Ubicación: Madrid
Posts: 547
Reputación: 17
jhonalone Va por buen camino
Hola, Agustin.

El mensaje exacto es "Class does not have a default property" y pone el cursor sobre los corchetes cuadrados de la [i] itinerante en
Código Delphi [-]
ListBox1.Selected[i]=True
He intentado hacerlo con paréntesis así
Código Delphi [-]
ListBox1.Selected(i)=True
y se para en el paréntesis con el mensaje: "Missing operator or semicolon".

Cuando NO cambio la propiedad MultySelectStyle del TListBox a None y quito la itinerancia, es decir con el código de la siguiente manera:

Código Delphi [-]
{for i  := 0 to ListBox1.Items.Count-1 do
if ListBox1.Selected[i]=True then } ShowMessage(ListBox1.Selected.Text);
me responde el mensaje con el último seleccionado. Con el último en el orden de selección, aunque haya más de uno seleccionado, independientemente de su indice en el TlistBox.

Todavía hay algo más "curioso". Antes de entrar en la lista, y para rehacerla, tenia este código:
Código Delphi [-]
ListBox1.Visible:=True;
ListBox1.ItemIndex := -1; // Si no seleciona ningún item lo sabremos por esto

for I := 0  to ListBox1.Items.Count-1 do
 ListBox1.Items.Delete(I);

ListBox1.Items.Add('uno');
ListBox1.Items.Add('Otro');
ListBox1.Items.Add('y otro');

Pues bien, al salir de la lista y volver a editarla, NO BORRA TODOS LOS ITEMS ANTERIORES.
A lo mejor borra uno o dos, y añade otra vez los tres items. (Aunque ha realizado la rutina completa)

Utilizando la propiedad ListBox1.Clear, ya no sucede esto. ¿¡Cosas.....!? Bueno, esto es una anécdota, no me preocupa, porque ListBox1.Clear funciona bien.
Responder Con Cita