Ir al contenido


Foto

Cocnoceis este componente


  • Por favor identifícate para responder
34 respuestas en este tema

#1 Desart

Desart

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 715 mensajes
  • LocationEspaña

Escrito 07 marzo 2009 - 03:18

Hola Amigos es mi primer mensaje en esta web, aguno me conoceis del club, y os pido ayuda para ver si coneceis es el siguiente componente, creo que es un panel, pero no estoy seguro, s el de las pestañas verdes y rojas. Os dejo la imagen

http://s1.subirimage...950cappanel.jpg

Gracias y un saludo
  • 0

#2 Caral

Caral

    Advanced Member

  • Administrador
  • 4.255 mensajes
  • LocationCosta Rica

Escrito 07 marzo 2009 - 08:39

Hola amigo Jose Luis
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
  • 0

#3 Desart

Desart

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 715 mensajes
  • LocationEspaña

Escrito 07 marzo 2009 - 04:02

Hola Caral encantado de charlar contigo, sobre el componente, creo que se trata de un panel, que nos permite tener borde y pestaña, la idea, es poder usarlo, para destacar partes del programa, lo vi en un programa de gestión medica y es muy impactante y apesar de tener muchos datos, gracias a este sistema, queda todo muy claro en sus apartados, incluso hay un apartado en que aparecen como carpetas con los expedientes por pacientes.

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
  • 0

#4 Héctor Randolph

Héctor Randolph

    501st Legion

  • Administrador
  • 664 mensajes
  • LocationMéxico

Escrito 08 marzo 2009 - 02:22

Hola Desart

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.

Imagen Enviada

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


  • 0

#5 Desart

Desart

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 715 mensajes
  • LocationEspaña

Escrito 08 marzo 2009 - 02:31

Muchas gracias Hector es perfecto para lo que Quiero.
  • 0

#6 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.142 mensajes
  • LocationMéxico

Escrito 08 marzo 2009 - 07:34

Muy interesante amigo Hector, gracias por el aporte (y)

Salud OS
  • 0

#7 cHackAll

cHackAll

    Advanced Member

  • Administrador
  • 598 mensajes

Escrito 08 marzo 2009 - 03:54

Excelente Hector (y)

Para qué usar componentes si podemos escribir nuestras propias clases!
  • 0

#8 Rolphy Reyes

Rolphy Reyes

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.092 mensajes
  • LocationRepública Dominicana

Escrito 09 marzo 2009 - 08:25

Saludos.

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.
  • 0

#9 Desart

Desart

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 715 mensajes
  • LocationEspaña

Escrito 10 marzo 2009 - 10:31

Hola Hector me gustarí­a, si lo permites hacerle algunas modificaciones al componente para poder usarlo.
  • 0

#10 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.142 mensajes
  • LocationMéxico

Escrito 10 marzo 2009 - 10:57

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.
  • 0

#11 Héctor Randolph

Héctor Randolph

    501st Legion

  • Administrador
  • 664 mensajes
  • LocationMéxico

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 (y). 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
  • 0

#12 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.142 mensajes
  • LocationMéxico

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 :D, en las versiones nuevas de Delphi lo que se tiene que hacer es crear un paquete para poder instalar un 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
  • 0

#13 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.142 mensajes
  • LocationMéxico

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 (y). 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
  • 0

#14 Desart

Desart

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 715 mensajes
  • LocationEspaña

Escrito 10 marzo 2009 - 01:00

Sin problema se publicara
  • 0

#15 Desart

Desart

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 715 mensajes
  • LocationEspaña

Escrito 24 marzo 2009 - 01:09

Lo prometido es deuda y aquí­ esta el componente, no se si el DCR esta correcto ya que no lo probé, pero el componente funciona yo creo que bien, se puede mejorar mucho, pero tiene bastantes opciones, agrego una demo para entenderlo mejor.

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

  • Archivo adjunto  381_.zip   275,98KB   54 descargas

  • 0

#16 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.142 mensajes
  • LocationMéxico

Escrito 24 marzo 2009 - 01:41

Hola amigo Desart,

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

  • 0

#17 Caral

Caral

    Advanced Member

  • Administrador
  • 4.255 mensajes
  • LocationCosta Rica

Escrito 24 marzo 2009 - 04:00

Hola
Gracias amigo por el regalo, lo veré y tratare de entenderlo.
Saludos
  • 0

#18 JandoK

JandoK

    Advanced Member

  • Moderadores
  • PipPipPip
  • 838 mensajes
  • LocationMexico

Escrito 24 marzo 2009 - 04:32

orales  !!!!

se ve muy bueno ese componente...  muy interesante ...

algun dia  intentare hacer un componente  :D :D :D

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

salu2!!!!!!!
  • 0

#19 Héctor Randolph

Héctor Randolph

    501st Legion

  • Administrador
  • 664 mensajes
  • LocationMéxico

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:

Imagen Enviada

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:



delphi
  1.    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:



delphi
  1.   TLapelShadow = class(TPersistent)
  2.   private
  3.     FColor: TColor;
  4.     FVisible: Boolean;
  5.     FDirection: TShadowDir;
  6.     FSize: TShadowSize;
  7.     procedure SetColor(const Value: TColor);
  8.     published
  9.       property Visible:Boolean read FVisible write FVisible;
  10.       property Direction:TShadowDir read FDirection write FDirection;
  11.       property Size: TShadowSize read FSize write FSize;
  12.       property Color: TColor read FColor write SetColor;
  13.   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:



delphi
  1.   TLapelPanel = class(TPanel)
  2.   private
  3.     FLapelShadow: TLapelShadow;
  4.   public
  5.     constructor Create(AOwner: TComponent); override;
  6.     destructor Destroy(); override;
  7.   published
  8.        property Shadow: TLapelShadow read FLapelShadow write FLapelShadow;
  9.   end;
  10.  
  11. constructor TLapelPanel.Create(AOwner: TComponent);
  12. begin
  13.   inherited;
  14.   FLapelShadow:=TLapelShadow.Create;
  15. end;
  16.  
  17. destructor TLapelPanel.Destroy;
  18. begin
  19.   FLapelShadow.Free;
  20.   inherited Destroy;
  21. 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 (y)). Para no entrar en muchos detalles y para los fines de este ejemplo basta con saber que existen diferentes tipos de editores de propiedades y el que a nosotros nos servirá se llama TClassProperty.

Necesitamos crear un editor heredando de esta clase y para hacerlo simple solamente vamos a sobrescribir la función GetAttributes:




delphi
  1. TLapelShadowProperty = class(TClassProperty)
  2.   public
  3.     function GetAttributes : TPropertyAttributes; override;
  4.   end;




Ahora colocamos el siguiente código en la función GetAttributes:



delphi
  1. { TLapelShadowProperty }
  2.  
  3. function TLapelShadowProperty.GetAttributes: TPropertyAttributes;
  4. begin
  5.   Result := [paReadOnly, paSubProperties];
  6. 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




delphi
  1. procedure Register;
  2. begin
  3.   RegisterPropertyEditor(TypeInfo(TLapelShadow),nil, '', TLapelShadowProperty);
  4.   RegisterComponents('Samples', [TLapelPanel]);
  5. 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
  • 0

#20 Desart

Desart

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 715 mensajes
  • LocationEspaña

Escrito 25 marzo 2009 - 10:49

HEctor  probaré en los siguientes componentes, lo que has expuesto, Siento abusar, pero sabes como se puede crear subpropiedades de un menú, que es el caso que me interesa. Que te ha parecido el componente.

Un saludo desde Canarias
  • 0