Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Tablas planas
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-06-2007
Avatar de anubis
anubis anubis is offline
Miembro
 
Registrado: mar 2007
Posts: 863
Poder: 18
anubis Va por buen camino
controlar dbgrid con codigo

Hola, como se puede controlar un dbgrid sin tener un dbnavigator, lo digo porque si por ejemplo hago click en un campo le doy a enter no me fija el campo en el registro hasta que le doy a enter.

Hay alguna forma de controlar las entrada y salida de la celda para enviarle a hacer algun procedure?porque he visto que hay el oncellclick y el oncolexit... pero oncellexit u oncellenter no he visto


es desesperante la verdad, la solucion que se me estaba ocurriendo es crear un tsgringrid pero teniendo un dbgrid seria mas facil.

gracias
Responder Con Cita
  #2  
Antiguo 18-06-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola anubis
Hacer que un dbgrid actualice, edit, insterte, u otra cosa no se puede, habria que hacer un componente para ese efecto.
Lo que hay que tener en cuenta es que el dbgrid es solo un presentador de la que hay en la tabla, al igual que un dbnavegator es un controlador de la tabla,
por eso hace esas cosas.
Si lo que quieres es que se actualice, edit, insterte, u otra cosa y se visualice en el dbgrid, se hace directamente sobre el componente que enlace la tabla sea table o query.
esto se puede hacer en el evento onclick del dbgrid (no te lo aconsejo) o en cualquier otro enevto del mismo (sigo sin aconsejarlo), yo lo haria en uno o varios botones.
Saludos
Responder Con Cita
  #3  
Antiguo 19-06-2007
Avatar de Alcolea
Alcolea Alcolea is offline
Miembro
 
Registrado: abr 2006
Ubicación: Santiago de Cuba, Cuba
Posts: 100
Poder: 19
Alcolea Va por buen camino
Wink

Tomado de "La cara oculta de Delphi 4", que está gratuita en Internet en más de un sitio.

A continuación describiremos algunos de los detalles más significativos de la interfaz del teclado y el ratón de este control.
  • Las teclas de movimiento son las de uso más evidente. Las flechas nos permiten movernos una fila o carácter a las vez, podemos utilizar el avance o retroceso de páginas; la tecla TAB nos lleva de columna en columna.
  • La tecla Insert pone la tabla asociada a la rejilla (Grid es rejilla en Inglés) en modo de inserción. Aparentemente se crea un registro con los valores por omisión, y el usuario debe llenar el mismo. Para grabar el nuevo registro tenemos que movernos a otra fila. Por supuesto si tenemos una barra de navegación asociada a la tabla, el botón Post produce el mismo efecto sin necesidad de cambiar la fila activa.
  • Pulsando F2, el usuario pone a la rejilla en modo de edición; Delphi crea automáticamente un cuadro de edición del tamaño de la celda activa para poder modificar el contenido de esta. Esta acción se logra también automáticamente cuando el usuario comienza a teclear sobre una celda. La autoedición se controla desde la propiedad AutoEdit de la fuente de datos DataSourse a la cual se conecta la rejilla.
  • Con la combinación de teclas Ctrl. + Delete se puede borrar el registro activo en la rejilla. Cuando hacemos esto se nos pide una confirmación.
  • La rejilla tiene una columna fija, en su extremo izquierdo, que no se mueve de lugar aun cuando nos desplacemos a columnas que se encuentren fuera del área de visualización. En esta columna la fila activa aparece marcada, y la marca depende del estado en que se encuentre la tabla base. En el estado dsBrowse, la marca es una punta de flecha; cuando estamos en modo de edición, una viga (I) y en modo de inserción la marca es un asterisco.

Última edición por Alcolea fecha: 19-06-2007 a las 03:40:16.
Responder Con Cita
  #4  
Antiguo 19-06-2007
Avatar de anubis
anubis anubis is offline
Miembro
 
Registrado: mar 2007
Posts: 863
Poder: 18
anubis Va por buen camino
Se agradece la informacion. De momento lo estoy haciendo con un boton y con el evento dbgrid1keydown, si se ha pulsado la tecla enter ya se va a un procedimiento.

Me faltaria saber si pulso un boton y comprobar si estaba el foco en el dbgrid, lo digo mas qu enada por si pulso un boton de añadir o modificar y no estaba dentro del dbrid para que no me realice el post
Responder Con Cita
  #5  
Antiguo 19-06-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Para todo hay muchas maneras de hacerlo, esta es una de tantas:
Código Delphi [-]
var
 linea: integer;
Begin
 Linea:= AdoQuery1.Fields[0].AsInteger;
end;
El if, es un argumento que se puede usar para definir si el conector de la base de datos esta en la linea que te interese.
Como ves, sigo insistiendo que las operaciones NO se hacen en el dbgrid, se hacen en el conector, o como lo quieras llamar.
Espero entiendas un poco mejor el asunto.
Saludos
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
seleccion de fila en dbgrid por codigo paulodb Varios 2 15-02-2007 20:37:43
Como controlar los renglones de un dbGRID. Gangster Conexión con bases de datos 3 17-01-2007 22:28:05
Controlar el foco dentro de un DBGrid chileno Conexión con bases de datos 6 19-09-2006 17:15:31
Ejecutar codigo en un DBGrid johurgi Varios 1 28-08-2006 13:11:40
Multiselect en un dbgrid desde codigo. mia.gomez Varios 0 06-08-2004 16:13:08


La franja horaria es GMT +2. Ahora son las 18:41:47.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi