FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Asignacion de evento OnEditValueChanged
Buenos dias.
Primero que nada Quiero presentarme, soy nuevo en este foro, y con delphi igual. Tengo un detalle con el cual espero me puedan ayudar. estoy construyendo un cxGrid con columnas dinamicas, entre ellas tengo 3 columnas (teorico, fisico, diferiencia) de las cuales Fisico es editable, lo que requiero es que al editar el valor de esta columna se realice una operacion de la diferiencia entre teorico y fisico, y el resultado este en la columna Diferiencia. Esa es la idea. y el codigo que estoy ocupando cara asignar ese evento a la columna fisico. En funcion Diferencias lo unico que hago es setear una variable, antes le habia puesto un mensage de dialogo, crei que ese era el problema asi que lo cambie por el seteo de una variable. El problema es me manda un mensaje de acces violation, que estaré haciendo mal ? ya que si asigno otro evento como por ejemplo OnMosueClk funciona correctamente. De antemano agradezco la ayuda que puedan brindarme. Última edición por ecfisa fecha: 01-08-2016 a las 22:27:03. Razón: Agregar etiquetas [DELPHI] [/DELPHI] |
#2
|
||||
|
||||
Creo que lo que intentas hacer se explica en éste link.
Principalmente veo que debes trabajar con el Sender que es de tipo TcxCustomEdit, asi: y dentro de tu código "typecastearlo" asi:
Por otro lado, veo que se sugiere utilizar una variable variant para recibir el valor "por si acaso", para que no te de un problema de conversión en caso que no pueda transformarse en string, algo asi:
Espero que te sirva... pues no he utilizado estos componentes |
#3
|
|||
|
|||
Buenos dias creo que ese no es problema para obtener los valores y realizar la operación, el problema es al momento de asignarle un proceso al evento que estoy creándole a esa columna.
cxCol_Mod.Properties.OnEditValueChanged:= Diferiencias; Específicamente en esa linea de codigo, ya intente ponerla al momento de crear el grid. pero marca el mismo error de Acces violation. el problema es que si pongo otro evento si se crea correctamente el evento y se manda a llamar. |
#4
|
||||
|
||||
Si el error es en esa línea,
entonces hay tres posibilidades: 1) Que el objeto cxCol_Mod no esté instanciado, lo cual no es cierto, pues lineas antes ya hiciste otras asignaciones 2) Que el objeto cxCol_Mod.Properties no esté instanciado, lo cual tampoco creo, pues este objeto se debe crear al momento de instanciarse el objeto cxCol_Mod 3) Por último, está el procedimiento diferencias, que debiste haber definido dentro de algún objeto : Procedure OnEditValueChanged(Sender:Tobject) of object Lo único que se me ocurre es que éste procedimiento se haya definido dentro de un objeto que al momento de la asignación aun no esté instanciado. saludo |
#5
|
|||
|
|||
Podrias explicarme un poco mas sobre esto como podria solucionarlo. en caso de que este fuera mi erro.
Cita:
|
#6
|
||||
|
||||
Una solucion mas simple podria ser, agregar un campo calculado (Diferencia) al dataset
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
OnEditValueChanged Keys | RebeccaGL | Varios | 2 | 29-12-2011 18:18:40 |
quantumgrid.OnEditValueChanged | RebeccaGL | MySQL | 0 | 19-09-2011 15:31:30 |
Asignación de un evento en tiempo de ejecución | dec | Trucos | 0 | 29-06-2006 23:44:25 |
Asignación IP | juanchi | Internet | 1 | 24-09-2003 19:07:05 |
Asignacion de un evento en tiempo de ejecución | Periyo | Varios | 1 | 02-06-2003 18:42:55 |
|