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
|
||||
|
||||
Asignar evento OnDrawColumnCell en tiempo de ejecución
Hola amigos !
Por qué no me deja asignar un evento OnDrawColumnCell a un DBGrid en tiempo de ejecución ? Intento, en tiempo de ejecución, hacer : pero el compilador me lanza un error '[Pascal Error] E2009 Incompatible types: 'Parameter lists differ' Por supuesto que en tiempo de diseño funciona perfectamente. Un saludo a todos y gracias por vuestros consejos !
__________________
Piensa siempre en positivo ! |
#2
|
||||
|
||||
Se da por supuesto que son dbgrids del mismo tipo, no serán de distintos componentes, no?
|
#3
|
||||
|
||||
No, no ...
Es el mismo Grid. Lo que pasa es que me interesa desactivar en un momento determinado el 'repintado' del Grid. Precisamente cuando voy a hacer un Drag&Drop de varios registros de ese Grid. Cuando termine el Drag&Drop quería volver a asignarle el mismo procedimiento al evento del DBGrid. Y al parecer en tiempo de ejecución no me lo permite. Muy raro. Me pide los parámetros. Pero claro, no sólo entiendo que no hace falta pasarle ahí los parámetros, sino que además si intento pasarle parámetros 'ficticios' tay y como supuestamente me los pide, me salta otro error diciendo que no puedo asignarle el procedimiento a ese evento. Puedo evitar la situación de otras maneras, lo que pasa es que me parecía muy curioso que no pudiera hacer lo que planteo en tiempo de ejecución, ya que en tiempo de diseño todos estamos acostumbrados a hacerlo con el evento OnDraColumnCell.
__________________
Piensa siempre en positivo ! |
#4
|
||||
|
||||
Hola gluglu,
Pues la verdad no se que pueda estar ocurriendo pero creo que pueden haber problemas en la forma como estas asignado el evento.... Considero que lo correcto es definir una varaible en dnde puedas guardar el procedimiento (un puntero)...
Luego, en la seccion en donde inhabilitas el procedimiento, guardas el procedimiento (tomado directamente del objeto), asi:
cuando lo quieras habilitar de nuevo, entonces haces la asignaci{on:
Y eso deberia funcionar, y como te digo, considero que es la forma correcta de hacerlo.... Por otro lado, supongo que puedes estar haciendo lo siguiente:
y luego haces la asignaci{on del procedimiento que Delphi crea por defecto
Lo cual en mi compilardor de Delphi 7 no me genera error ni advertencia, pero aun asi no creo que sea una buena tecnica... Es solo una opini{on, pero como te dije en mi compilador no me ocurre, por lo que debe haber algo que estes haciendo diferente... si pudieras copiar el codigo tal vez pudieramos saber que pasa.. Saludos. |
#5
|
||||
|
||||
A mí también me funciona bien y sin la variable intermedia
|
#6
|
||||
|
||||
Gracias a los dos por vuestros comentarios.
Delphi 2006 VCL.Net, Proyecto nuevo VCL, un nuevo Form VCL. Incluyo un DBGrid y un Botón. Código : Será de nuevo algo especial del Delphi VCL.Net como me he encontrado otras varias ya. Gracias por la idea de la variable intermedia.
__________________
Piensa siempre en positivo ! |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Asignar propiedades de Ttable en tiempo de ejecución | coleleon | Tablas planas | 3 | 30-11-2005 23:22:39 |
Asignar evento Oncalcfield en tiempo de ejecucion | el_barto | Conexión con bases de datos | 5 | 06-09-2005 00:08:46 |
Evento OnDrawColumnCell de un DBGrid | hook | Varios | 1 | 01-04-2005 09:14:37 |
Asignar la ruta de tablas en tiempo de ejecucion | tortelini | Varios | 2 | 19-03-2005 12:13:53 |
Asignacion de un evento en tiempo de ejecución | Periyo | Varios | 1 | 02-06-2003 18:42:55 |
|