![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|
|
#1
|
||||
|
||||
|
Kbaby, vas entiendo.... el error está en que salto debe recibir inialmente el valor igual a la posición - 1 del campo a buscar. Es decir que:
Si estamos buscando Apellido, Salto debe valer incialmente 2. Si estamos buscando Nombre, Salto debe valor inicialmente 1. Si estamos buscando DNI, Salto debe valer inicialmente 0. Si estamos buscando Ciudad, Salto debe valor inicialmente 3. Recuerda que StrinGrid comienza en cero por ello: [0] -> DNI [1] -> Nombre ... [3] -> Ciudad el inc(salto,4) debe hacerse fuera del IF. Ten presente que por más que encuentre, o no... debe seguir recorriendo la lista. Otro problema, estás sobreescribiendo la primera fila. Necesitas de otra variable, que se incremente en 1 sólo cuando haya una coincidencia, de modo que con Cells[salto +- ?,otra_variable] se consiga ir iterando fila a fila en cada condidencia. Creo que con esto ya lo tienes. Ya te lo di bastante regalado. EDITO: Otra cosa que veo, es que como dije antes, además de esos campos necesigas guardar el valor de salto para tener referencia e implementar el algoritmo de volcado inverso (desde el STringGrid hacia el TListBox). Saludos, Última edición por Delphius fecha: 30-05-2008 a las 22:48:11. |
|
#2
|
||||
|
||||
|
Fin del problema (no del hilo).
Aquí tengo el codigo made in kbaby para buscar a todos los que tienen el mismo DNI (o lo que sea).
Funciona de maravilla jajaja. He añadido al código un contador el de t.rowcount porque conforme encuentre a una persona la mesa en la tabla y aumente una fila. Ahora lo siguiente que voy a hacer, es una vez volcado en la tabla (una persona o dos o las que sean) si la modifico, guardarla y que no se borren las otras. YeahhH!!!! Última edición por kbaby fecha: 30-05-2008 a las 23:14:28. Razón: El código fallaba porque el inc estaba en lugar equivocado, gracias Delphius. |
|
#3
|
||||
|
||||
|
Cita:
![]() |
|
#4
|
||||
|
||||
|
Cita:
![]() ![]() ![]() Si... se siente... bien... Veo que mi alumnito está aprendiendo. ![]() ![]() ![]() Saludos, |
|
#5
|
||||
|
||||
Que haría yo sin tí jajaja ![]() Ya le hice unos retoques al código. Bueno me voy a dormir, mañana ya miro el paso inverso: TStringGrid -> TListBox Buenas noches ![]() y.... gracias |
|
#6
|
||||
|
||||
|
Bueno! Aquí regreso
Con una pregunta para seguir adelantando cosas...Quisiera utilizar un form2 (por falta de espacio) donde coloque una StringGrid (donde se volcarán todos los items de mi ListBox). Una vez volcados, quisiera hacer cálculos con ellos, el porcentaje de hombres/mujeres, el porcentaje de gente de Córdoba... etc... (eso si sé). Mi duda es la siguiente... ¿qué tengo que hacer para en el form2 utilizar el listbox que tengo en el form1?. Gracias. |
|
#7
|
||||
|
||||
|
A ver... ¿Tu deseas tener una copia del STtringGrid del form1 en un TStringGrid de un form2?
Si es eso, creo que el archivo que había dejado al inicio del hilo te sirve de ayuda. Debes añadir en uses la unit del otro. Y para "copiar" los datos necesitas recorrer fila a fila y columna a columna e ir copiandolos. Es decir: Desde fila 1 hasta Cantidad de filas - 1 hacer: Desde columna 1 hasta Cantidad de columnas -1 hacer: Celda de StringGrid2 (columna, fila) = celda de StringGrid1 (columna, fila) Espero que se entienda. Saludos, |
|
#8
|
||||
|
||||
|
Aquí estoy de nuevo. El lunes, último día para entregar mi proyecto. Está fenomenal gracias!. Bueno bueno lo unico que me queda es hacer eso de que cuando vuelco a una persona al StringGrid y la modifico desde allí, guardarla en el listbox.
Como me dijiste delphius "piensa en frio" pues eso hice. Se me ocurrió hacer esto: 1. Busco a la persona por su DNI "así me aseguro que sólamente salga 1 persona". 2. Una vez tengo a la persona (con sus datos) en la rejilla, modifico los datos. 3. Hago un button que lo que haga es borrar a esa persona1 de la lista y con los nuevos datos que hay de esa persona1 en la rejilla los vuelco a edits que luego se guardarán en el listbox. Yo creo que se puede hacer, y sería facil ya que dispongo de conocimientos para hacerlo. Sólo quiero una opinion: ¿está bien pensado?. Bueno! Luego mas tarde me pondre a ponerlo en práctica y ya cuando lo termine, me lo traeré para que lo veais que está muy chuuuloooo!!!. Saludos |
|
#9
|
||||
|
||||
|
Cita:
¿Si se puede modificar tranquilamente sin estar borrando e insertando para que hacer esos pasos? Sobre todo lo desaconsejo si utilizas Add en vez de Insert. Puesto que Add agrega al final, e Insert en la posición indicada en su parámetro y corriendo los demás elementos. Si puedes localizar el indice al que hace mención los datos de dicha persona, tranquilamente puedes modificar los datos de dicho indice en el TListBox.
Esa línea contra estas dos:
No tengo Delphi a mano, pero creo que se entiende la idea. Al volcar los datos desde el TStringGrid hacia el TListBox se sobreescriben todos los datos asociados a dicha persona. El guardado físico (en el archivo txt) no le interesa si se modificaron 1, 3, 40 datos... guardará en el orden que se encuentren en el TListBox. Si borras y agregas estarás corriendo los datos y si bien al final en el txt se guardarán como estan representados el efecto es distinto... Los datos inicialmente estaban en cierto orden, y al final... pueden que ya no conserven dicha posición. Puede ser "molesto" el correr los datos de lugar. Lo mejor sería sobreescribirlos. ¿Porqué quieres borrarlos? ¿No terminaste de comprender mi idea verdad? Saludos, |
|
#10
|
||||
|
||||
|
Cita:
nombre1 provincia1 telefono1 nombre2 provincia2 telefono2 Si yo busco a una persona (a la persona 1) y la vuelco en un stringgrid. Una vez alli, modifico su nombre1 (y pongo pepe). Luego borro nombre1, provincia1, telefono1. Y añado: pepe, provincia1, telefono1. Quedando: nombre2 provincia2 telefono2 pepe provincia1 telefono1 El orden de las personas no altera nada, siempre que los items tengan una posicion correcta por ejemplo, todos los telefonos tendran estas posiciones: 3-6-9-12... Mientras esos órdenes no se alteren... puedo hacerlo ¿o no? Grax |
|
#11
|
||||
|
||||
|
Efectivamente kbaby, los datos siguen el orden.
Pero si te fijas ahora la persona que estaba primero, queda despues de una modificación en último lugar. Y eso, puede ser molesto. Como es de práctica lo que estás haciendo no importa mucho. Pero en situaciones reales puede marear un poco. Lo que tu buscas se consigue en dos pasos, lo que yo digo se consigue en uno. Si se puede sustituir en un solo paso ¿para que hacer más de la cuenta? Te estoy preparando una demo para que veas de lo que hablo. Dame unos minutos más y te la tengo lista. Saludos, |
|
#12
|
||||
|
||||
|
Pues gracias. Al menos se que puedo preparar un codigo, por feo que sea, pero "pienso en frio" con papel :P
Jajaja. Gracias tio. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Ayuda con código. | wofox | Varios | 6 | 11-12-2007 00:16:21 |
| Ayuda con un codigo | JoNieve | C++ Builder | 0 | 21-04-2007 12:27:33 |
| Ayuda con error en codigo :-( | jorgegetafe | Varios | 6 | 07-02-2007 19:29:04 |
| Codigo de Barras.... Ayuda!!!!! | adolfoz | Varios | 14 | 15-11-2006 17:13:55 |
| Ayuda con código de barras | ramiretor | Varios | 0 | 28-06-2003 00:42:58 |
|