Construyendo Clase Evento on create
Buenos dias foristas
Estoy construyendo una clase en la cual debo: 1. crear tclientdataset, y los he colocado en en on create, pero este paso no se ejecuta, pienso que debo estar usando algo mal podrian darme un ayuda gracias 2. si debo crear los dataset usando self o null
|
No veo razón para que no se ejecute. Lo que sí, es que estás declarando un método CrearDataSets que no usas y estás creando los datasets tanto en el constructor como en dicho método.
Puedes usar self para el constructor. Si usas nil está bien, pero entonces debes asegurarte de destrurlos en el destructor de la clase. LineComment Saludos |
Y si colocáras el constructor en la sección public
Saludos |
Cita:
LineComment Saludos |
Y si colocáras el constructor en la sección public
Hola Egostar,
Efectivamente movi el constructor create(Aowner:tcomponent);override; desde el private a la seccion publica y funciono, ahora se crean los clientdataset Hola Raman Cambie la creacion de los tclientdataset a self para evitar evitar la destruccion manual Gracias a Todos los del clubdelphi |
Justo hace poco con el compañero Al Gonzalez discutiamos sobre las ambiguedades que se puedan presentar en el codigo fuente
En este caso la clase tiene una variable privada Flg_DatasetOK de tipo Boolean
Luego, esta el metodo CrearDataSets que recibe por referencia un parametro Boolean tambien llamado Flg_DatasetOK
La linea subrayada es una asignacion ambigua; en Delphi estos "conflictos" se resuelven segun el orden de las referencias; en este caso, la referencia mas "cercana" es el parametro Flg_DatasetOK que recibe el metodo CrearDataSets ; por lo tanto, la variable de instancia Flg_DatasetOK queda "oculta"; la unica manera posible de referenciarla es indicandolo explicitamente, usando Self
En definitiva, Self.Flg_DatasetOK no es el parametro pasado por referencia Flg_DatasetOK Simplemente es una observacion, aunque no trivial; basicamente tu variable de instancia Flg_DatasetOK nunca se actualiza, y estos detalles no los informa el compilador |
La franja horaria es GMT +2. Ahora son las 07:40:09. |
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