PDA

Ver la Versión Completa : sobre listbox y acceso a un item en particular


federiconqn21
12-12-2005, 13:36:53
hola,quisiera que alguien me pudiera explicar como accedo a un item de un listbox,utilizo la propiedad "items.valuefromindex[]",pero me devuelve el valor de esa posicion truncado,es decir,le falta el primer caracter.que solucion me pueden dar?
muchas gracias.....

dec
12-12-2005, 14:06:04
Hola,

Vamos a recorrer todos los "items" de un "TListBox" para que te hagas una idea:


procedure TForm1.Button1Click(Sender: TObject);
var
i: integer;
begin
for i := 0 to ListBox1.Count-1 do
ShowMessage(ListBox1.Items[i]);
end;

federiconqn21
12-12-2005, 15:46:00
hola,
gracias amigo,muy util tu ayuda,quisiera preguntarte lo ultimo por hoy:
estoy trabajando con 2 listbox en paralelo,es decir,el i-esimo elemento de la lista 1 se corresponde con el iesimo elemento de la lista 2,
como hago para que al seleccionar el i-esimo elemento de una de las dos listas,tambien se seleccione el correspondiente de la otra?

dec
12-12-2005, 16:01:33
Hola,

A ver si el "ejemplo" número 9 de este sitio Web (http://dec.clubdelphi.com/archivos/html/ejemplos.html) puede ayudarte. ;)

federiconqn21
12-12-2005, 16:50:15
muy util el ejemplo que me enviaste,quisiera saber(con esto si termino por hoy)
lo siguiente:
cuando selecciono un elemento de un listbox,como manipulo su valor,es decir,si quisiera insertar ese valor en un tedit.text,o si quisiera operar con el en la forma que sea,cual es el indice del valor seleccionado? listbox.items[?].gracias una vez mas

Héctor Randolph
12-12-2005, 17:20:42
La propiedad ItemIndex es la que te indica el elemento seleccionado, si no hay un elemento seleccionado toma el valor de -1.

Te pongo un ejemplo:


procedure TForm1.Button1Click(Sender: TObject);
begin
if (ListBox1.ItemIndex<>-1) then
ShowMessage(ListBox1.Items[ListBox1.ItemIndex]);
end;


saludos

trygvekor
29-11-2006, 02:58:26
Hola, yo tengo el mismo problema del primer caracter, se pierde cuando lo quiero pasar desde un richedit a cualquier otro componente; y si o si necesito usar un trichedit (eso creo yo, corrijanme si no es asi) porque lo cargo con los contenidos del portapapeles cuando pego.

yo utilizo:

edit1.text:= richedit1.lines.valuefromindex[0];

y el edit me copia el contenido de toda la primer linea del richedit, menos el primer caracter, el cual se pierde.

Tambien intente agregarle un caracter o un espacio (' ') al principio de cada linea del richedit, y lo que hace es reemplazarlo por un '='.

Por ejemplo, originalmente la linea es asi:
Prueba de copia

y despues que le agrego un espacio a la linea (lo hago pot codigo) me queda asi:

=rueba de copia.

Muchisimas gracias...

trygvekor
29-11-2006, 03:50:33
ya encontre la solucion, y la dejo posteada por si a alguien le pasa lo mismo.

en lugar de hacer richedit1.lines.valuefromindex[i] hago richedit1.strings[i].

la solucion estaba enfrente de mis ojos y no la veia...:D

Ricomarz
01-03-2007, 03:04:16
Tengo un ListBox con esta informacion por ejemplo:

matricula digito folio importe estatus
304358 456 254 14258.00 0

Obtengo la linea y la separo en pedazos, lo que quiero es que cuando seleccione esa linea (row) del ListBox cambiar el estatus a 1, no se como hacerle he tratado pero no he podido ...

Espero puedan ayudarme ..

Saludos ......
Ricomarz.

joHn je@N
01-03-2007, 10:22:49
Segun lo que lei..creo que esto necesitas:

procedure TForm1.ListBox1Click(Sender: TObject);
var c : String;
begin
c := ListBox1.Items.Strings[ListBox1.ItemIndex];
c [Length (c)] := '1';
ListBox1.Items.Strings[ListBox1.ItemIndex] := c;
end;


Espero te sirva.
SALUDOS