![]() |
Convertir de ListBox a distintas cadenas de texto
Queria saber si se puede pasar cada uno de los items de un list box a distintas variables string, ejemplo tengo en el list box:
1.- club 2.- delphi 3.-foros 4.- oop y que estos items se asignen a distintas var string. |
Hola,
Puedes acceder a los "Items" de un "ListBox" mediante la propiedad del mismo nombre:
En este caso la variable "s" contendrá el texto del primer elemento de la lista. |
Hola, solo necesitas acceder a la posición que necesitas en su propiedad Items, un ejemplo para ver el item seleccionado.
procedure TForm1.ComboBox1Change(Sender: TObject); begin showmessage(ComboBox1.Items[ComboBox1.ItemIndex]); end; Saluditos |
Cita:
|
Cita:
Saluditos |
Hola,
Puedes valerte de otras propiedades de "Items" para recorrer los existentes:
|
Cita:
|
Cita:
En diferentes variables:
Saluditos |
¿y para que los quieres en una variable? digo, ya los tienes en el combo... para que repetir el valor en otra variable... además, los ejemplos que amablemente Caro y Dec te han mostrado, son suficientes como para que TU deduzcas como realizar lo que quieres... no es buena idea esperar a que aquí hagan tu tarea.
|
Hola,
Hum... pero es que no vamos a hacerte todo el trabajo, ¿o sí? Je je je. Lo que quiero decir es que en el código que tanto Caro como yo hemos mostrado, puede verse cómo asignar un elemento de una lista a una variable de tipo "string". ¿Que quieres usar más variables de tipo string y asignar un elemento de la lista a cada una? Bueno. ¿Quién te lo impide? Otra cosa es que claro, no sabes los elementos que va a tener la lista... luego no puedes declarar variables "s1, s2, s3" y así. Vale. Pues entonces se me ocurre que puedes usar un "Array de cadenas", y añadir cada elemento de la lista en un elemento del "Array", pero, aquí ya se me viene a la cabeza que no sé muy bien qué quieres hacer, porque, ¿para qué añadir los elementos de la lista en un "Array", si ya están en la lista, que nos ofrece una propiedad como "Items", que, es como si fuera un "Array"? Así que no se me ocurre qué más decirte y lo lamento. :rolleyes: |
Cita:
Salud OS |
Cita:
Cita:
Saluditos |
Cita:
Aqui algo rapido :)
Salud OS |
Cita:
Saluditos |
Cita:
Salud ITOS PD, me enseñas a hacer eso :) :o |
Sería útil que j_flores3000 aportara más detalles del caso. Si nos describiera sus problemas, necesidades, requisitos, planteos y/o dudas podríamos ver tal vez a esto con otra óptica y tal vez ofrecer alguna alternativa.
Por lo pronto, me uno a sus planteos: ¿Para que tener tantas variables como items existan si se puede tener y referenciar a cada item, desde una misma variable (combo)? j_flores3000, a lo que apuntan todos los compañeros (y compañera;)) es que se estaría redundando datos. Si ya en el Combo se tiene guardado los datos ¿Para que tener otras N variables con cada dato? El combo no es más que un array dinámico visual. Y como cualquier array permite que todos los items se referencien mediante un único nombre. ¡Esa es una de sus cualidades y ventajas! Como he dicho al principio, si conocieramos más del tema... Saludos, |
El punto es que para que quiere otro array si al final un ListBox es eso :rolleyes: es necesario mas información.
Salud OS PD; Como bien lo estas diciendo amigo Delphius ;) |
Cita:
Digamos que los ponemos dentro de un panel, por eso lo del Parent.
Yo también estoy con ustedes,sería bueno que nos de mas información. Saluditos |
Muchas gracias por todo lo comentado hasta ahora. Es que tengo que insertar en un quick report todos los items que haya en el listbox pero que sean en qrtext distintos. Por eso queria pasarlos a variables de texto y de ahi asignarlos a los qrtext ( En un quick report). Lo que me doy cuenta ahora es que puedo asignarlos desde los items.
Los items estan en un formulario y el quick report en otro. Es para hacer facturas y necesito poner los productos que compre en lineas total mente distintas se ve? Bien el problema restante es que los items los voy agregando yo y a veces son 50 items o aveces 2 se ve?? Igualmente gracias por todo... |
Hola amiguita
Esto es lo que no tenia en mente :o
Como hacer que el label tuviera otro nombre :rolleyes::D gracias amiguita ;) Salud ITOS |
Cita:
Salud OS |
Perdon pero no soy mujer o sea tengo j_flores3000 porque me llamo Juan Flores...mmm eso siempre fue un problema en el foro...jajajaja. Igualmente quisiera hacer un 2º llamado de atencion al que tiene la foto del guason ya que es la segunda vez que en varios post trata de retarme o no se que...yo solo estoy pidiendo ayuda si el no me la quiere brindar todo bien pero que no se alze mas. Si pudieramos superar nuestras diferencias con contra veneno seria bueno...igualmente sigo buscando la solucion a mi problema hice varias pruebas pero sigue sin salir!
|
a caray, no amigo, mi intensión no es causar polémicas ni levantones ni nada agresivo. Es que, a mi me dio la impresión de que estabas esperando que hiciéramos el código exactamente como tu lo pides y eso aquí no es bien visto. Vamos, que según lo que puso Dec, él tuvo la misma impresión, solo que lo puso con diferentes palabras.
En corto, con los ejemplos que ya habían puesto Caro y Dec, se hubiera solucionado tu planteamiento original y me pareció de "mal ver" que no te sintieras satisfecho con esas respuestas. Ahora, el problema es, que faltó que desde un principio nos dieras los detalles que nos acabas de dar; si nos hubieras explicado desde un principio que era para hacer un reporte de una factura, las propuestas e ideas hubieran sido muy diferentes. Como ya dijo Egostar, ahora es necesario hacer un Rollback de todo. :D Con los nuevos datos que nos propones, lo mejor es utilizar una base de datos, si no utilizas ninguna sería bueno que buscaras opciones para utilizarlas. Si no te interesan las bases de datos, yo te recomendaría que utilizaras una tabla en memoria (Las JEDI JVCL tienen un componente muy bueno llama TjvMemoryData); a esta tabla en memoria, le puedes insertar, eliminar, modificar todos los artículos que quieras y el QuickReport lo enlazas a esta tabla por medio de QRDBText. De esta forma, si son 2, 10, 500 artículos, el mismo QuickReport se encargará de acomodarlo. En fin, que mi intensión no es ofender a nadie, simplemente expreso mi punto de vista. Te pido una disculpa si te pareci agresivo en este hilo o en algún otro. |
Cita:
|
Cita:
Cita:
´ Volviendo a tu pregunta, para pasar los items del ListBox a tu QuickReport lo puedes hacer de la siguiente forma: Necesitas utilizar el evento OnNeedData de tu QuickReport, colocas una banda con BandType rbDetail y ahí dentro un qrLabel.
Pero deberías considerar utilizar una base de datos. Saluditos |
Cita:
![]() Hola, para hacer lo que pides, podrias usar algo como esto
suponiendo que los diferentes qrlabel ya existan en el momento de ejecución, si no deberias crearlos e ir colocandolos uno a uno. Ahora bien, el quick report tiene una banda, llamada detail band, que sirve precisamente para hacer lo que estas intentando hacer 'a mano', usando el evento OnNeedData y, si usas bases de datos, los QRDBText. Busca en el foro y en los propios ejemplos de Delphi y verás que te ahorras faena. Saludos. PD: nada, repitiendo lo dicho por los colegas del club en esta segunda pagina de posts |
| La franja horaria es GMT +2. Ahora son las 15:41:10. |
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