FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Mover registros en ClientDataSet
Hola a todos, este es mi desafio. Tengo un ClientDataSet que lleno a "mano" y esta relacionado con un DBGrid que muestra sus datos. Lo que necesito hacer es posicionarme en la grilla sobre un registro y cuando presione el boton "Arriba" me mueva ese registro una posición mas arriba de la grilla. Igual con el botón "Abajo", pero que me mueva el registro un lugar hacia abajo en la grilla. El algoritmo en la cabeza lo tengo mas o menos planteado, pero necesito saber si exite una forma directa de hacerlo o que propiedades o procedimientos me combiene usar. Espero que haya sido claro. Gracias y hasta luego.
|
#2
|
||||
|
||||
¿Y las teclas de control preestablecidas?
En un DBGrid, al pulsar VK_Down bajas un registro. Es el comportamiento por defecto. Por tanto, debería anularlo o usar [Ctrl+TeclaDown] para eso que quieres hacer. Pero, ¿qué harías con el Nº de registro? Si el 3 pasa debajo del 4, deberías anular el orden de índice previo. Si es con botones, ¿bastaría con cambiarles el nº, luego al indizar de nuevo te aparecerían colocado tal como buscas.
No le veo mucho sentido. ¿Habría que coger el valor de todos los campos, o serviría cambiarles de número? 1,2,3,4 y luego de la pulsación esa 1,2,4,3... Creo que anularía los índices y cambiaría los números. No le veo a qué importancia tiene su colocación. ¿O sí? Saludos. Última edición por bulc fecha: 13-03-2014 a las 22:18:11. |
#3
|
||||
|
||||
Hola mglucero.
Me queda la duda si cuando decis "a mano" te referis a un TClientDataSet en memoria. Si es así, creo que el modo mas simple es crear un campo de tipo Integer (llamémoslo INDEX), declararlo como índice y trabajar sobre él. Un ejemplo corto de lo que te comento:
Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
|
|
|