![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
TExtCalendar - Calendario alternativo a TCalendar
Os pongo en antecedentes:
Necesitaba un calendario para mi próximo proyecto (un gestor de actividades). El problema es que TCalendar, el que viene por defecto con Lazarus, no permite marcar fechas de ninguna forma, y como depende del sistema operativo no hay forma de menterle mano. Me puse a buscar y encontré TCalendarLite en un hilo del foro de FreePascal/Lazarus. Me gustó, pero tampoco permite marcar varias fechas, así que me puse a mirarlo para añadirle yo esa eventualidad, pero me encontré con un desaguisado de aúpa: Tres clases, una de las cuales no hace lo que se supone que debe hacer, y un código enrevesado y más complejo de lo que, en mi opinión, debería ser. Total, que me puse a re-escribirlo. La intención primera era mejorar TCalendarLite, pero al final he creado mi propio componente, mucho más simple y creo que mejor, Acabo de terminar hace unos minutos su funcionalidad básica y he decidido compartirlo con todos. Funciona con Lazarus/FreePascal en Fedora, pero no creo que de problemas en Windows. Lo que me pregunto es si funcionaría en Delphi (a ver si puedo probarlo en mi viejo Delphi6 esta tarde). Permite cambiar muchas cosas del aspecto gráfico, también diferencia entre la fecha actual (o definida por el programador) y la fecha seleccionada por el usuario, y tiene casi todos los eventos de TCalendar y alguno más; todo ello en un código fuente elegante y magníficamente comentado. El "pero" es que le falta alguna cosilla todavía. En fin, aquí tenéis el invento, según se ve con el programa de demostración (para Lazarus) adjunto: ![]() Estoy pensando en modificarlo ligeramente, de forma que se comporte de forma similar a como lo hace TDrawGrid, para que el programador pueda dibujar cada casilla como le plazca. ¿Quizá extendiéndola a una TDrawExtCalendar? ¿O al revés, que TExtCalendar descienda de TDrawExtCalendar? También estoy pensando en cómo podría extender una clase TDBExtCalendar que pudiera obtener información de una base de datos para marcar diferentes fechas. Esto último no sé muy bien cómo hacerlo, todavía. Me refiero, más que nada, a cómo indicar los campos a tener en cuenta (¿por defecto? ¿Propiedades? ...). |
#2
|
||||
|
||||
Hola,
Gracias Ñuño por compartirlo. He intentado probarlo en Delphi XE2, pero, hay algunos problemillas. Iba a copiar la lista aquí debajo, pero, Delphi me echa una mano como se ve en la siguiente imagen: ![]() No creo que te sirva de mucho, pero, en fin, algo es algo. ![]() |
#3
|
|||
|
|||
Gracias Ñuño
Me parece muy interesante probar tu componente en delphi, también lo probaré en mi XE2 y en XE7. Saludos
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney |
#4
|
||||
|
||||
![]() ![]() ![]()
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#5
|
||||
|
||||
Caramba. Veo que entre la VCL y la LCL hay muchas más diferencias de lo que pensaba. ¡Incluso en la RTL!
![]() Gracias por el informe. No sé si se podrá hacer compatible con Delphi. |
#6
|
||||
|
||||
Hola Ñuño.
Muchas gracias por compartirlo. ![]() Saludos ![]()
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#7
|
||||
|
||||
Hola de nuevo Ñuño.
Probando en Delphi 7... En principio, hay que declarar los tipos TTextLayout y TTextStyle previo a la declaración de la clase ya que no existe: Luego de eso me aparece: Cita:
Saludos ![]()
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 19-11-2014 a las 21:22:26. |
#8
|
||||
|
||||
Ñuño,
¡Excelente! ![]() ![]() Nelson. |
#9
|
||||
|
||||
Gracias por los ánimos.
ecfisa: Gracias por la información. Aunque no sé si definir los tipos TTextLayout y TTextStyle, porque más adelante se utilizan como parámetro de un método de TCanvas (método que creo que no existe en la VCL). |
#10
|
||||
|
||||
Hola Ñuño.
Si, algo de eso ví... También me tuve que crear una función function IsFontEqual(f1, f2: TFont): boolean en reemplazo del método Font.IsEqual que no existe en Delphi. Al final hice varios cambios logrando que compile en Delphi 7 y hasta muestre el componente, pero no funciona para nada... ![]() No he tenido mucho tiempo para dedicarle, pero si logro algo que valga la pena te adjunto el archivo. Saludos ![]()
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Resaltar semana en un TCalendar | MAXIUM | Varios | 3 | 20-05-2013 05:14:10 |
Fecha por defecto TCalendar | leogobo | Lazarus, FreePascal, Kylix, etc. | 8 | 07-06-2011 20:24:06 |
Filtrar por campo con TCalendar | leogobo | Conexión con bases de datos | 8 | 02-06-2011 05:23:45 |
Programa para generar ayuda en chm o uso alternativo de pdf | Nasca | Varios | 6 | 11-09-2007 14:00:29 |
Pintar columna de TCalendar | Delfino | OOP | 3 | 29-01-2005 07:25:43 |
![]() |
|