
Cocnoceis este componente
#1
Escrito 07 marzo 2009 - 03:18
http://s1.subirimage...950cappanel.jpg
Gracias y un saludo
#2
Escrito 07 marzo 2009 - 08:39
No conozco el componente pero tal vez si nos explicas mas podriamos ver si los maestros nos hacen algo similar.
Me alegra verte por aqui.
Saludos
#3
Escrito 07 marzo 2009 - 04:02
Repito la idea es que sea un panel un tab, etc, quede llamativo y me permita aclarar, opartes del programa de Formulación y R.D. que estoy preparando.
Un saludo desde Canarias
#4
Escrito 08 marzo 2009 - 02:22
Hice un pequeño componente derivado de TPanel. Sobrescribí el método Paint para dibujar un borde de color y una pestaña con el Caption en la esquina superior izquierda.

Bueno, es solamente un ejemplo para que veas como se logra modificar la apariencia de un TPanel.
Te dejo los fuentes del componente.
Saludos
Archivos adjuntos
#5
Escrito 08 marzo 2009 - 02:31
#6
Escrito 08 marzo 2009 - 07:34

Salud OS
#7
Escrito 08 marzo 2009 - 03:54

Para qué usar componentes si podemos escribir nuestras propias clases!
#8
Escrito 09 marzo 2009 - 08:25
También, si tienes mucho deseo de instalar componentes nuevos, tienes la opción de las JEDI y usar su PageControl que soporta colores en sus Tab's.
#9
Escrito 10 marzo 2009 - 10:31
#10
Escrito 10 marzo 2009 - 10:57
He querido instalar este componente en mi Turbo Delphi pero no veo la opcion de Install Component que se tenia en otras versiones de Delphi, alguien sabe como hacer esto?
Salud OS
PD, es la versión de pago así que si puedo agregar componentes.
#11
Escrito 10 marzo 2009 - 11:20
Hola Hector me gustaría, si lo permites hacerle algunas modificaciones al componente para poder usarlo.
Claro que lo puedes modificar y utilizarlo

Saludos
#12
Escrito 10 marzo 2009 - 11:40
Hola
He querido instalar este componente en mi Turbo Delphi pero no veo la opcion de Install Component que se tenia en otras versiones de Delphi, alguien sabe como hacer esto?
Salud OS
PD, es la versión de pago así que si puedo agregar componentes.
Bueno, parece que era mi falta de cafeina, ya instale el componente

- FILE ---> NEW ---> OTHER ---> PACKAGE
- Agregamos el código del componente
- En la sección Project Manager botón derecho del mouse sobre el paquete COMPILAR y después INSTALAR
Salud OS
#13
Escrito 10 marzo 2009 - 11:42
Hola Hector me gustaría, si lo permites hacerle algunas modificaciones al componente para poder usarlo.
Claro que lo puedes modificar y utilizarlo. De hecho subí este ejemplo para mostrar que un panel puede cambiar su apariencia dibujando en el Canvas del Control. El resto depende de la imaginación y creatividad de cada uno.
Saludos
Y cuando lo termines, no olvides publicarlo

Salud OS
#14
Escrito 10 marzo 2009 - 01:00
#15
Escrito 24 marzo 2009 - 01:09
Me gustari apediros ahora si podeis explicarme como agrupar propiedades en eun componente sin editor de propiedades, es decir que todas las propiedades Shadow, esten en un grupo (simbolo +). Otro tema es como poder entrar en subpropiedades, es el caso del MAinmenu tiene una serie de propiedades y luego cada elemento del menu tiene otra serie de propiedades, me gustaria saber como crear nuevas sub propiedades y sobreescribir propiedades.
Probarlo, seguro que habrá cosas que rectificar, ya comentareis
Archivos adjuntos
#16
Escrito 24 marzo 2009 - 01:41
Muchas gracias por el aporte, ya ejecute el demo que colocas y se ve muy bien, tiene muchos detalles muy interesantes, estoy seguro que nuestros maestros hacedores de componentes nos van a dar la respuesta a tu pregunta.
Salud OS
#17
Escrito 24 marzo 2009 - 04:00
Gracias amigo por el regalo, lo veré y tratare de entenderlo.
Saludos
#18
Escrito 24 marzo 2009 - 04:32
se ve muy bueno ese componente... muy interesante ...
algun dia intentare hacer un componente



mientras tanto, hacer uso de los que los compañeros publican ...


salu2!!!!!!!
#19
Escrito 25 marzo 2009 - 10:41
Me gustari apediros ahora si podeis explicarme como agrupar propiedades en eun componente sin editor de propiedades, es decir que todas las propiedades Shadow, esten en un grupo (simbolo +). Otro tema es como poder entrar en subpropiedades
Hola Desart, creo que te refieres a esto:

Bueno, para esto debemos utilizar los editores de propiedades que brinda el IDE de Delphi. En principio suena algo complicado pero no lo es tanto.

A continuación voy a colocar cada uno de los pasos necesarios para lograr editar subpropiedades en un componente.
Primer paso, debes añadir en los uses las siguientes unidades:
DesignEditors, DesignIntf;
Luego debes crear una clase de la cual deseas mostrar las subpropiedades, en este ejemplo simplemente heredo de la clase TPersisient para agrupar las propiedades de la sombra:
TLapelShadow = class(TPersistent) private FColor: TColor; FVisible: Boolean; FDirection: TShadowDir; FSize: TShadowSize; procedure SetColor(const Value: TColor); published property Visible:Boolean read FVisible write FVisible; property Direction:TShadowDir read FDirection write FDirection; property Size: TShadowSize read FSize write FSize; property Color: TColor read FColor write SetColor; end;
Las propiedades que he puesto como published serán las que aparezcan en el inspector de objetos y a su vez el IDE buscará el editor de propiedades adecuado para cada propiedad publicada. (i)
EL siguiente paso es añadir esta clase como una propiedad de nuestro componente y lo publicamos:
TLapelPanel = class(TPanel) private FLapelShadow: TLapelShadow; public constructor Create(AOwner: TComponent); override; destructor Destroy(); override; published property Shadow: TLapelShadow read FLapelShadow write FLapelShadow; end; constructor TLapelPanel.Create(AOwner: TComponent); begin inherited; FLapelShadow:=TLapelShadow.Create; end; destructor TLapelPanel.Destroy; begin FLapelShadow.Free; inherited Destroy; end;
Hasta el momento tenemos una nueva propiedad publicada en nuestro componente, sin embargo, esta propiedad es una clase del tipo TLapelShadow y el editor no sabrá cómo tratarla. El IDE tiene editores para tipos de datos conocidos, por ejemplo, sabe como tratar con TStringList, Strings, Integer, Boolean, TPicture, TColor, etc.
Apesar de que el IDE no reconocerá la nueva propiedad, tenemos la posibilidad de crear un editor de propiedades para para nuestra clase TLapelShadow (Por eso Delphi es una maravilla

Necesitamos crear un editor heredando de esta clase y para hacerlo simple solamente vamos a sobrescribir la función GetAttributes:
TLapelShadowProperty = class(TClassProperty) public function GetAttributes : TPropertyAttributes; override; end;
Ahora colocamos el siguiente código en la función GetAttributes:
{ TLapelShadowProperty } function TLapelShadowProperty.GetAttributes: TPropertyAttributes; begin Result := [paReadOnly, paSubProperties]; end;
Le estamos indicando al IDE que nuestro editor nos deberá permitir ver las subpropiedades de la clase TLapelShadow. Es decir, tomará las propiedades publicadas de nuestra clase y las colocará identadas en el inspector de objetos.
EL paso final es registrar nuestro editor de propiedades para que al instalar el componente el IDE lo reconozca. para esto utilizamos el procedimiento register
procedure Register; begin RegisterPropertyEditor(TypeInfo(TLapelShadow),nil, '', TLapelShadowProperty); RegisterComponents('Samples', [TLapelPanel]); end;
La instrucción RegisterPropertyEditor en su primer parámetro recibe el nombre de la propiedad para la cual estamos registrando el editor, en este caso TLapelShadow. El segundo parámetro se refiere al componente que contendrá la propiedad, si se envía nulo, entonces el editor se mostrará independientemente del componente que lo contenga. El tercer parámetro es el nombre de la propiedad, se deja como cadena vacía para que pueda tomar distintos nombres en distintos componentes. El cuarto parámetro es el nombre de nuestro editor de propiedades, en este caso TLapelShadowProperty.
Solamente resta compilar e instalar nuestro componente. Para comprobar que todo funciona colocamos una instancia de nuestro componente y vamos a inspector de objetos para ver los resultados.
Bueno, quedo algo extensa la explicación pero espero que sea de utilidad.
Saludos
#20
Escrito 25 marzo 2009 - 10:49
Un saludo desde Canarias