Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Como extender componentes de la paleta (https://www.clubdelphi.com/foros/showthread.php?t=76390)

mcbullrich 27-10-2011 22:33:05

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.

roman 27-10-2011 23:06:28

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

Caminante 27-10-2011 23:55:15

Bueno yo escuche por ahi que en delphi 7 se puede usar Class Helper para añadir algun metodo a una clase.

Fijate aqui

Al González 28-10-2011 01:33:26

Cita:

Empezado por Caminante (Mensaje 416959)
Bueno yo escuche por ahi que en delphi 7 se puede usar Class Helper para añadir algun metodo a una clase.

Fijate aqui

En realidad esas son características que surgieron en Delphi después de la versión 7 (las traducciones automáticas son por lo general malas y a veces engañosas). :)

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.

Caminante 28-10-2011 17:21:05

Cita:

Empezado por Al González (Mensaje 416961)
En realidad esas son características que surgieron en Delphi después de la versión 7 (las traducciones automáticas son por lo general malas y a veces engañosas). :)

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.

Gracias por la aclaracion. La verdad los classhelper era algo que estaba leyendo recien en internet.
Y coincido en que seria bueno una ampliacion de la duda para poder responder mejor

Un aclarado saludo

mcbullrich 01-11-2011 19:27:57

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