Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   list.selcount (https://www.clubdelphi.com/foros/showthread.php?t=73703)

juaarias 11-05-2011 05:09:25

list.selcount
 
list.selcount me indica el numero de items seleccionado?es decir si es igual a cero es porque hay al menos uno seleccionado?

juaarias 11-05-2011 05:10:02

perdon...
 
si es mayor a cero es porque hay al menos uno seleccionado?

ecfisa 11-05-2011 05:12:17

Hola juaarias.
Cita:

si es mayor a cero es porque hay al menos uno seleccionado?
Así es.

Cuando es mayor a 1 (hay más de un elemento seleccionado) recorré los items verificando la propiedad Selected para saber cuales han sido seleccionados.

Saludos.

juaarias 11-05-2011 05:20:02

gracias de nuevo
 
hola, sabia que era esa la condicion pero no logro hacer funcionar con exito el siguiente codigo:
Código Delphi [-]
if lstProductos.SelCount>0  then
    begin
    frmEditar.show;
    frmEditar.txtNuevoNombre.Text:=frmDatos.lstProductos.Items[frmDatos.LstProductos.ItemIndex];
    frmEditar.txtNuevoPrecio.Text:=frmDatos.lstPrecios.Items[frmDatos.LstPrecios.ItemIndex];
    end;

lo que intento es que tengo una lista de productos si hay seleccionados que muestre el form editar para editar nombre y precio,sino nada o algun cartel,el hecho es que selecciono elementos y no me prosigue a editar.

ecfisa 11-05-2011 07:03:30

Hola juaarias.

Tendría que funcionar si tenés la propiedad MultiSelect igual a True en los componentes, ya que no tiene sentido usar SelCount si sólo se va a seleccionar un elemento...

Para ajustarse a tu caso debería ser:
Código Delphi [-]
  if (lstProductos.SelCount = 1)and(lstPrecios.SelCount = 1) then
  begin
    frmEditar.txtNuevoNombre.Text:=frmDatos.lstProductos.Items[frmDatos.LstProductos.ItemIndex];
    frmEditar.txtNuevoPrecio.Text:=frmDatos.lstPrecios.Items[frmDatos.LstPrecios.ItemIndex];
    frmEditar.show;
  end;

Pero dado que sólo se envía un dato de cada componente y para no confundir al usuario permitiendo selecciones múltiples, mejor sería dejar la
propiedad MultiSelect en False y simplemente usar:
Código Delphi [-]
  if (lstProductos.ItemIndex <> -1)and(lstPrecios.ItemIndex <> -1) then
  begin
    frmEditar.txtNuevoNombre.Text:=frmDatos.lstProductos.Items[frmDatos.LstProductos.ItemIndex];
    frmEditar.txtNuevoPrecio.Text:=frmDatos.lstPrecios.Items[frmDatos.LstPrecios.ItemIndex];
    frmEditar.show;
  end;

Saludos.

Casimiro Noteví 11-05-2011 10:30:11

Por favor, juaarias, procura poner títulos descriptivos a tus hilos, según se explica en nuestra guía de estilo, muchas gracias por tu colaboración.


La franja horaria es GMT +2. Ahora son las 18:13:09.

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