Como extender componentes de la paleta
Hola Gente:
No soy muy avezada en Delphi pero probando un poco con los clientdatasets se me hace que si fueran extensibles facilmente (sin crear nuevos componentes derivados) se haría facil obtener un objeto persistente en una base sin meternos en un OR mapping complejo. Todo esto lo haría para aprovechar la info almacenada en el formulario RAD .dfm, creo que le llaman RTTI. Es decir: Tengo un CLIENTE:TClientDataset y quiero agregarle un método procedure CLIENTE.VerFicha También tendría un PRODUCTO:TClientDataset y quiero agregarle un método procedure PRODUCTO.VerFicha No encontré la manera de hacerlo. Capáz es una tontera y uds. me ayudan. Ciao, MC. |
Pues no puedes agregar un método a una clase ya existente. De fuerza tendrías que derivar una nueva clase. Sin embargo, algo que puedes hacer es meter el ClientDataSet en un DataModule y poner el método deseado en ese DataModule.
// Saludos |
Bueno yo escuche por ahi que en delphi 7 se puede usar Class Helper para añadir algun metodo a una clase.
Fijate aqui |
Cita:
Tanto derivar una clase, crear un ayudante de clase o añadir los métodos deseados en la clase de un módulo de datos puede ser una solución, MC. Pero primero te invitaría a que expusieras con mayor detalle la inquietud o problema que se te presenta para así buscar una solución óptima. Saludos. Al González. |
Cita:
Y coincido en que seria bueno una ampliacion de la duda para poder responder mejor Un aclarado saludo |
Compañeros:
Muy buen dato el de los class helpers, nunca lo hubiera encontrado de no haber hecho esta consulta. La idea general es solo de forma y es utilizar las clases propietarias de la aplicación aprovechando las características RAD de los ClientDataSet para no escribir tanto código. La forma actual que usamos es con DataModules, aunque con la mala práctica de incluír varios clientdatasets en el mismo datamodule. Ej.: Actualmente usamos: TDM = class(TDataModule) CLIENTES: TClientDataSet; CLIENTESID: TIntegerField; procedure VerCliente; ... ... end; Quisieramos usar algo de la forma: TCLIENTES = class(TClientDataSet) ID: TIntegerField; procedure Ver; end; TDM = class(TDataModule) CLIENTES:TCLIENTES ... ... end; Todo esto aprovechando las facilidades del IDE en cuanto a crear Objetos usando en RAD sin escribir el código a mano. Saludos, MC. |
La franja horaria es GMT +2. Ahora son las 15:36:20. |
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