![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Evidentemente, eso no es un fallo del dbgrid, echa un vistazo al dataset asociado al dbgrid, mira los eventos, etc. a ver si haces algo "raro".
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
#2
|
|||
|
|||
|
He hecho el programa sin nada de código para poder ver que estaba pasando: Un dataset, un TTable y un DBgrid.
Última edición por Casimiro Noteví fecha: 30-01-2011 a las 12:18:01. Razón: Poner etiquetas [delphi] el código [/delphi] |
|
#3
|
||||
|
||||
|
Cita:
![]()
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
#4
|
|||
|
|||
|
Quiero decir que no no hay nada raro en los eventos porque no hay nada de código. Tiene que ser un bug del DBGrid pero no se como solucionarlo.
Saludos, |
|
#5
|
||||
|
||||
|
Pues es cierto que ocurre eso
![]()
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
#6
|
||||
|
||||
|
Cita:
De encontrar alguna posible solución, la publicaré con gusto aquí mismo. Saludos. Al González. ![]()
__________________
Tras casi seis años de trabajar para una empresa alemana como desarrollador Delphi, se vieron forzados a dejarme ir (temas presupuestales). Así que ahora estoy abierto a escuchar nuevas ofertas. |
|
#7
|
||||
|
||||
|
Al, yo he hecho la prueba con delphi 2007.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
#8
|
||||
|
||||
|
Afectivamente, acabo de comprobar que esto también sucede en Delphi 2007y ocurre tanto con registros en edición (dsEdit) como en inserción (dsInsert).
Además, no sólo se trata de un efecto visual, sino que el campo que adquiere el foco recibe el mismo texto que se capturó en la otra celda. De tal suerte que si se captura "abc" en un campo alfanumérico y nos pasamos a un campo numérico para, acto seguido, dar el clic en la zona vacía, ocurre la excepción típica de que el dato no puede ser asignado. Según he podido examinar con la pila de llamadas (Call Stack) del depurador de Delphi, existe una pequeña diferencia entre el código fuente del método TCustomDBGrid.MouseDown (unidad DBGrids.pas) de la versión 7 y el de la versión 2007, y dicha diferencia es la causa del problema. Declaración del método:
Parte de su implementación en Delphi 7:
La misma parte en Delphi 2007:
A simple vista no parece haber razón para que hayan agregado ese par de líneas, pero felizmente MouseDown es un método virtual que puede ser redefinido en una clase derivada de TDBGrid (ya sea registrada o simplemente interpuesta). Cuando un método no se comporta como queremos y es virtual, existen muchas posibilidades de adaptar ese comportamiento a nuestras necesidades. Pero antes de hacer cualquier cosa sería bueno investigar qué razón tuvo CodeGear para agregar ese par de líneas. Regresaré luego, apoyen este caso. Al González. ![]()
__________________
Tras casi seis años de trabajar para una empresa alemana como desarrollador Delphi, se vieron forzados a dejarme ir (temas presupuestales). Así que ahora estoy abierto a escuchar nuevas ofertas. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Colorear las lineas de un DBGrid | Anunakis | Gráficos | 9 | 23-02-2012 12:34:53 |
| Cambiar Grosor de lineas de DBGrid | matti | Varios | 1 | 02-11-2010 18:15:26 |
| Escribir al clicar en un botón | SMTZ | PHP | 6 | 28-06-2008 07:21:53 |
| Pasar lineas de in dbgrid a otro dbgrid | look | OOP | 3 | 21-09-2007 23:16:29 |
| colorear lineas de un dbgrid | merlin | Varios | 2 | 30-01-2004 12:36:46 |
|