PDA

Ver la Versión Completa : Adicionar una propiedad a un componente


Jose Roman
06-04-2015, 18:49:21
Cordial saludo,

Trabajo con Delphi XE7 y tengo un TButtonGroup el cual como sabran a su vez se le adicionan los Items (TGrpButtonItems) pero estos no tienen la propiedad enabled, alguien sabe como adicionar esta propiedad para que se pueda utilizar en modo de ejecucion?

Gracias de antemano.

Al González
06-04-2015, 22:40:28
Normalmente, para agregar una propiedad a un objeto, es necesario declarar una nueva clase, diciéndole a Delphi que esta nueva clase debe heredar (adquirir) los mismos elementos de la clase original, pero añadiendo los nuevos elementos que deseas (más propiedades, campos o métodos). Es lo que se conoce como derivar una clase de otra, cumpliéndose uno de los principios de la Programación Orientada a Objetos: la herencia.

Este mecanismo ocurre de forma automática cuando creas un nuevo formulario en Delphi. Seguramente te será familiar este código:
type
TForm1 = class(TForm)
Button1: TButton;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

Aquí, TForm1 es una clase que deriva de TForm (por lo tanto tendrá todas las características y capacidades de la clase estándar TForm), pero además añade un campo (Button1) y un método (FormCreate). Si además quisiera añadirle una propiedad, tendría que escribir una declaración "Property...", de lo cual encontrarás mucha más información a través de los siguientes mensajes de este hilo y buscando en Google con la opción "site:www.clubdelphi.com".

En tu caso, seguramente tendrás que escribir todo el código de la nueva clase (preferentemente en un archivo .pas separado). Por favor, infórmanos sobre los avances que vayas teniendo para que la ayuda que te demos sea lo más adecuada posible.

Procura cuidar un poco más los acentos y detallar más las preguntas, saludos cordiales.

Al González. :)

Jose Roman
06-04-2015, 22:57:37
Gracias por tu respuesta Al González, pero te comento que no he avanzado debido a que soy muy novato en el tema y en Colombia son ciegos y no hay donde enseñen las bondades de este lenguaje, habia leido algo en cuestion de que utilizara un TActionList y creara un TAction con la propiedad Enabled a False y en la propiedad de Action del TGrpButtonItem le asignara el TAction pero no lo toma y es raro porque si haces esto mismo con un TButton la propiedad del TAction si afecta el enabled. Si puedes guiarme mas te lo agradeceria mucho. Por lo pronto tratare de editar Vcl.ButtonGroup

ElKurgan
07-04-2015, 09:35:23
¿Y has probado a usar clases interpuestas (o algo asi)?

Con esto te evitas tener que "tocar" el código fuente original de Delphi.

Un ejemplo muy sencillo en esta página (http://marteens.com/trick46.htm)del maestro Marteens

Saludos

Jose Roman
07-04-2015, 14:23:06
Interesante propuesta, gracias estare analizandola.