FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
TCalendar, deshabilitar días fuera del mes actual
Saludos.
Hace mucho que no solicitaba vuestra ayuda. Estoy intentando deshabilitar los días que aparecen en la rejilla del TCalendar y que no corresponden al mes seleccionado. Estoy usando la versión 10.3.3 El motivo es muy simple: cuando pulsas en un día del mes anterior o del mes siguiente el dia que pulsas no es el que se muestra en la rejilla del mes correspondiente. Por ejemplo: si estamos en el actual mes de julio, aparecen los días 28,29 y 30 de junio al principio y a partir del 31 de julio aparecen del 1 al 8 de agosto. Cuando seleccionas el 29 de junio (p.ej.) el calendario se actualiza al mes de junio, pero con el día 1 seleccionado. (Se supone que debería presentar el 29 de junio seleccionado) Cuando seleccionas el 28 de junio (p.ej.) el calendario se actualiza al mes de mayo (¡¿..?!) con el día 31 de mayo seleccionado. (Se supone que debería presentar el 28 de junio seleccionado) Ahora vayamos al final del mes de julio y seleccionemos los días de agosto que se presentan en la rejilla. Cuando seleccionas el 1 de agosto (p.ej.) el calendario se actualiza al mes de agosto, pero con el día 29 seleccionado. (Esperábamos que seleccionara el 1 de agosto. ¿no?) Cuando seleccionas el 7 de agosto (p.ej.) el calendario se actualiza al mes de septiembre, pero con el día 4 seleccionado. (Esperábamos que seleccionara el 7 de agosto. ¿no?) Este comportamiento un poco ERRÁTICO, (a mi parecer), desearía evitarlo. Se me ocurren 2 formas: 1.- Inhabilitando las casillas de la rejilla que no correspondan al mes seleccionado. 2.- Conseguir que el resultado sea el esperado. Es decir si pulsar el 1 de agosto, que el calendario se actualice al 1 de agosto. Aquí está mi problema. NO SE RESOLVER NINGUNA DE LAS 2 MANERAS PROPUESTAS. Y lo que solicito de vosotros es ayuda para resolver cualquiera de las 2 soluciones. Gracias anticipadas por vuestra paciencia y vuestra ayuda. Un saludo cordial.
__________________
"Pedid y se os dará; buscad y hallaréis ..." (Lc 11,9-10) "...si no tengo caridad, nada soy..." (1 Cor 13,1-13) Última edición por jhonalone fecha: 13-07-2021 a las 15:57:45. |
#2
|
|||
|
|||
Se me olvidó hacer la precisión de que en Windows se actualiza correctamente al día y mes que clicas. Aunque sea una fecha del mes anterior o del mes siguiente.
Sin embargo en Android ocurre lo que ya he descrito. Saludos.
__________________
"Pedid y se os dará; buscad y hallaréis ..." (Lc 11,9-10) "...si no tengo caridad, nada soy..." (1 Cor 13,1-13) |
#3
|
|||
|
|||
Hola de nuevo, amigos.
Después de mucho buscar, probar y comprobar, he conseguido algo. Basado en este enlace, he modificado un poco el fichero "My.FMX.Calendar.Style.pas" y he conseguido (creo) lo que buscaba. Adjunto archivo Calendar_un_mes_solo.rar Confieso que he estado intentando modificar los colores de las casillas, porque me parece muy poco estético ver el calendario en tonos grises, basándome en este enlace. Pero no lo he conseguido de una forma aceptable. SIGO TRABAJANDO EN ELLO. Voy a iniciar un nuevo hilo para este propósito. Espero que mis esfuerzos le sirvan a alguien más. Saludos a todos.
__________________
"Pedid y se os dará; buscad y hallaréis ..." (Lc 11,9-10) "...si no tengo caridad, nada soy..." (1 Cor 13,1-13) |
#4
|
|||
|
|||
Hola de nuevo, amigos.
Después de mucho MAS buscar, probar y comprobar, he conseguido AMBAS COSAS: DIAS OCULTOS Y COLORES. Basado en este enlace, he modificado y eliminado algunas cosas que no venían al caso en el fichero MainFrm.pas , en el fichero FMX.Calendar.Helpers.pas, y (sobre todo) en el fichero FMX.CalendarHolidayDays.Style.pas. Al final he conseguido lo que buscaba, colorear los días y ocultar los días correspondientes al mes anterior y el siguiente. Cada cual podrá adaptar los colores a su gusto. Aviso que sólo lo he probado en la versión 10.3.3 de Delphi. Aquí tenéis los archivos necesarios. Prueba Calendario Club Delphi.rar Espero que mis esfuerzos le sirvan a alguien más. Saludos a todos.
__________________
"Pedid y se os dará; buscad y hallaréis ..." (Lc 11,9-10) "...si no tengo caridad, nada soy..." (1 Cor 13,1-13) |
#5
|
|||
|
|||
TCalendar Color y sólo días mes seleccionado (Resuelto)
Hola amigos.
Creo que es conveniente abrir un nuevo hilo para los buscadores. Si los administradores lo juzgan necesario, pueden borrar el hilo. Después de mucho MAS buscar, probar y comprobar, he conseguido AMBAS COSAS: DIAS OCULTOS Y COLORES. Basado en este enlace, he modificado y eliminado algunas cosas que no venían al caso en el fichero MainFrm.pas , en el fichero FMX.Calendar.Helpers.pas, y (sobre todo) en el fichero FMX.CalendarHolidayDays.Style.pas. Al final he conseguido lo que buscaba, colorear los días y ocultar los días correspondientes al mes anterior y el siguiente. Cada cual podrá adaptar los colores a su gusto. Aviso que sólo lo he probado en la versión 10.3.3 de Delphi. Aquí tenéis los archivos necesarios. Archivo Adjunto 3930 Espero que mis esfuerzos le sirvan a alguien más. Saludos a todos.
__________________
"Pedid y se os dará; buscad y hallaréis ..." (Lc 11,9-10) "...si no tengo caridad, nada soy..." (1 Cor 13,1-13) |
#6
|
|||
|
|||
Hola de nuevo amigos.
Creo que puedo facilitaros las cosas un poquito mas. Si alguien no quiere estar "comiéndose el coco" para implantar esta funcionalidad en algún proyecto que ya tenga operativo, os explico a continuación cómo lo hice yo y funcionó a la primera. Recuerdo que uso la versión 10.3.3. 1) Copiamos los ficheros siguientes (desde la carpeta donde hemos descomprimido el fichero "Prueba Calendario Club Delphi.rar") a la carpeta de nuestro proyecto donde tenemos el formulario que lleva el TCalendar. FMX.Calendar.Helpers.dcu FMX.Calendar.Helpers.pas FMX.Calendar.Style.dcu FMX.Calendar.Style.pas FMX.CalendarHolidayDays.Style.dcu FMX.CalendarHolidayDays.Style.pas MainFrm.fmx MainFrm.pas (Estos dos últimos no se usarán en tu proyecto, pero te hará falta abrir MainFrm.pas en la pestaña "Design" para copiar el libro de estilos "stilbk1".) 2) Incorporamos un TCalendar, (si no lo teníamos), al formulario donde tenemos o queremos tener el TCalendar. 3) Copiamos el libro de estilos llamado "stilbk1", (que está en el fichero MainFrm.pas), en el Layout donde hemos puesto el TCalendar. 4) Añadimos, a la cláusula uses del formulario que lleva el TCalendar, los ficheros que nos falten de entre los siguientes: System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.StdCtrls, FMX.Calendar, FMX.Controls.Presentation, FMX.MultiView, FMX.DateTimeCtrls, FMX.Layouts, FMX.ListBox, FMX.Ani; 5) Después de la cláusula "implementation" añadimos estos ficheros al uses del formulario donde va el TCalendar: uses FMX.Calendar.Helpers, System.Rtti; 6) Añadimos al proyecto las unidades: FMX.Calendar.Helpers FMX.CalendarHolidayDays.Style 7) Añadimos al procedimiento OnCreate de nuestro formulario con el TCalendar: Calendar1.Model.ShowWeekends := True; Calendar1.Date := now; 8) Configuramos el TCalendar de este modo: ControlType : Styled FirstDayOfWeek : dowLocaleDefault HitText : True Name : Calendar1 ParentShowHint : False Size/PlataformDefault : False StyleLookUp : calendarstyle TodayDefault : True Con estos pasos, a mí me ha funcionado A LA PRIMERA en un proyecto que ya tenía terminado. Ya sabéis que me gusta compartir mis soluciones. Me alegraría saber que alguien se ha beneficiado de mis esfuerzos. Gracias. Saludos a todos.
__________________
"Pedid y se os dará; buscad y hallaréis ..." (Lc 11,9-10) "...si no tengo caridad, nada soy..." (1 Cor 13,1-13) |
#7
|
|||
|
|||
Calendario con fechas coloreadas
Buenas a todos.
Estaba buscando un calendario en el que poder colorear determinados días siguiendo unos criterios, básicamente turnos de trabajo, para visualmente saber cuales te tocan, y llegue a este hilo. Me parece muy interesante, pero es mas de lo que necesito, y finalmente opte por una solución mas "artesanal", que comparto por si le es útil a alguien. Creo un TGridLayout con 7 columnas y 6 filas, cuarenta y dos casillas, 31 días mas 11 vacías Lo relleno con 42 TButton, del 1 al 31 con el numero correspondiente, y del 32 al 42 sin texto, y deshabilitados. Con DaysInMonth(fecha dia 1 del mes) calculo la posición del primer día del mes Con DayOfTheWeek calculo los días que tiene ese mes, y oculto los que no corresponden (28 o 29 en febrero, 31 en los meses que no deben) Modificas el mes y año a consultar con el control que quieras, en mi caso un TLabel y dos TSpeedButton, y dibuja el mes. Y funciona, luego modificas el botón del día concreto con las propiedades de color de texto y/o color de fondo. Puede que no sea una manera muy elegante, pero funciona. Saludos |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
TCalendar, deshabilitar días fuera del mes actual | jhonalone | Desarrollo en Delphi para Android | 3 | 04-08-2021 02:46:08 |
Busqueda y visualizacion en DBGrid seleccionado solo Fila | sisne | OOP | 9 | 26-03-2010 23:22:05 |
TListBox. Cambiar el color del elemento seleccionado | adebonis | OOP | 1 | 08-11-2007 08:37:01 |
Modificar el color de fuente de un tmemo solo en determinadas lineas | gaz-g7 | Varios | 3 | 28-06-2007 01:33:44 |
cabiar de color dias especificos | Dayvis | Varios | 3 | 16-03-2005 13:12:37 |
|