Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Mi componente Shadow (https://www.clubdelphi.com/foros/showthread.php?t=64779)

José Luis Garcí 18-04-2009 15:06:03

Mi componente Shadow
 
1 Archivos Adjunto(s)
Hace tiempo estuve trabajando en el lo deje por diversas causas y por bloqueo, por suerte lo termine, me gustaría mejorar cuando se restaura una ventana, pero es funcional.

Aquí os lo dejo para que los que queráis lo uséis, espero vuestras criticas, serán bien recibidas, total estoy aprendiendo atravez de la creación de componentes.


Perdonar no había puesto el componente, contiene demo

look 18-04-2009 16:18:01

Cita:

Empezado por José Luis Garcí (Mensaje 345403)
Hace tiempo estuve trabajando en el lo deje por diversas causas y por bloqueo, por suerte lo termine, me gustaría mejorar cuando se restaura una ventana, pero es funcional.

Aquí os lo dejo para que los que queráis lo uséis, espero vuestras criticas, serán bien recibidas, total estoy aprendiendo atravez de la creación de componentes.


Perdonar no había puesto el componente, contiene demo

y... exactamente que hace este componente? :)

dec 18-04-2009 16:49:19

Hola,

Pruébalo, hombre. ;) Es un componente que dibuja una especie de sombra (shadow) en otro buen número de componentes visuales: botones, casillas de edición, paneles, etc. Un poco de documentación no estaría demás, empaquetar el componente, separar el "registro" de la unidad "principal", identificadores un poco más "legibles", pero, vamos, funcionar funciona, está muy bien. Echa un vistazo. Y gracias José. ;)

José Luis Garcí 18-04-2009 21:30:31

Hola Dec, tus palabras me dan que pensar, pero eso de que esta muy bien viniendo de un maestro me alaga.:p

Prometo aumentar la documentación en mis componentes, pero os recuerdo que estoy aprendiendo, así que si me explicas lo de empaquetar, lo de separar el registro de la unidad principal y lo de los identificadores mas legibles os lo agradecería y una vez lo entienda prometo intentar aplicarlo, de todas maneras estos componentes que estoy creando, me llevan el poco tiempo que puedo dedicar ala programación, hay días que no puedo ni una hora y tengo un buen listado de ideas para componentes, creo que estoy aprendiendo más de programación opp, herencia y demás desde que me centro en estos componentes, y de todas maneras, sobre todos estoy trabajando una primera versión y cuando domine lo suficiente pienso sacar nuevas versiones mejoradas, si puedo claro.

José Luis Garcí 19-04-2009 12:02:07

El mensaje anterior creo que esta colado, ya que aquí, no debe ir ni venta ni compras y menos de oro.

dec 19-04-2009 12:19:06

Hola,

Cita:

Empezado por José
El mensaje anterior creo que esta colado, ya que aquí, no debe ir ni venta ni compras y menos de oro.

Era un "spammer" José... ya están sus mensajes borrados y su cuenta "baneada".

Cita:

Empezado por José
(...) si me explicas lo de empaquetar, lo de separar el registro de la unidad principal y lo de los identificadores mas legibles os lo agradecería (...)

Lo primero es lo que se hace, por ejemplo, en los Componentes del ClubDelphi. Se trata de hacer dos paquetes: en uno se añade alguna unidad que sirve para registrar los componentes, y en otro paquete se añaden las unidades de los propios componentes. La verdad es que la teoría se me escapa un poco: creo que tenía que ver con ahorrar recursos, además de clarificar ciertas cosas. Por ejemplo, uno no puede instalar un paquete "para tiempo de ejecución" en el IDE de Delphi, sino que ha de usar el paquete "para tiempo de diseño". Entonces, supongo que dicho paquete (y su contenido) no se incluye en el ejecutable final de nuestra aplicación, ahorrando con ello ciertos recursos. La mayoría de componentes siguen esta "regla", que, no me invento yo, sino que creo que es una recomendación de la gente de Delphi. Ahora bien... tendrás que buscar información más exacta de lo que son los paquetes para tiempo de diseño y paquetes para tiempo de ejecución: busca por "design time packages" y por "runtime packages".

Respecto de los identificadores, la cosa viene a ser algo más sencilla, por ejemplo, imagina la siguiente clase:

Código Delphi [-]
TMyComponent = class(TComponent)
public
  procedure SetBE();
  procedure SetTE();
end;

¿Qué se supone que hacen los procedimientos "SetBE" y "SetTE"? Con un poco de contexto, otro poco de documentación, en fin, podríamos averiguarlo, pero, en mi opinión, se trataría de identificadores más o menos difíciles de entender. Ahora bien, como ya estarás imaginando, mejorar los identificadores pasa porque se entiendan mejor, así por ejemplo:

Código Delphi [-]
TMyComponent = class(TComponent)
public
  procedure SetBeginEvent();
  procedure SetTerminateEvent();
end;

Vale... en este ejemplo quizá no quede del todo claro (es inventado al fin y al cabo) pero, la idea es esa. En lugar de algo como "SetUN", nada nos impide (y puede ayudar mucho) identificar este procedimiento como "SetUserName". No creo que deba darle más vueltas, porque, estoy seguro de que ya te has hecho la idea. ;)

José Luis Garcí 19-04-2009 12:45:44

Gracias Dec entiendo ahora un poco más claro lo que querías decirme, pero ( es una opinión), en principio como estoy creando componentes diferentes, que seguro que los hay similares y muy superiores a los míos, no los quería meter en un paquete, ya que envió componente por componente, con un menor tamaño que en un paquete y siempre con demo, espero entiendas mis motivos, o sigo equivocado y no te refieres a varios componentes.

En cuanto a lo de los identificadores, se que puede que alguna no este claro del todo como

SizeSD (SiseSmoothedDegraded), S_Panel (ShadowPanel), etc, pero lo he hecho por usar nombre de propiedades un poco más corto, ya que es un engorro en el inspector de objetos cuando el nombre es demasiado largo, ademas en el código procuro dar una muy breve aclaración del nombre, pero tienes razón en que debo hacer mi código más legible y que me falta documentar los componentes.

Neftali [Germán.Estévez] 20-04-2009 09:28:29

Felicidades por el componente Jose Luís y Gracias por compartirlo. ;)


La franja horaria es GMT +2. Ahora son las 16:32:51.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi