Jump to content


Photo

Componente TCalendarView


  • Please log in to reply
8 replies to this topic

#1 tiquinho

tiquinho

    Member

  • Miembros
  • PipPip
  • 36 posts

Posted 03 November 2020 - 08:23 PM

Hola a todos

 

Alguien sabe como delimitar un TCalendarView.

 

Lo que deseo es que cuando se cargue el calendario, este tenga deshabilitado los días posteriores a la fecha actual. Y también se puede delimitar por ejemplo 3 meses antes. 

 

 

Agradezco su colaboración


  • 0

#2 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14448 posts
  • LocationMéxico

Posted 04 November 2020 - 09:38 AM

Hola a todos

 

Alguien sabe como delimitar un TCalendarView.

 

Lo que deseo es que cuando se cargue el calendario, este tenga deshabilitado los días posteriores a la fecha actual. Y también se puede delimitar por ejemplo 3 meses antes. 

 

 

Agradezco su colaboración

 

Hola

 

No tiene las propiedades MinDate y MaxDate?

 

Saludos


  • 0

#3 tiquinho

tiquinho

    Member

  • Miembros
  • PipPip
  • 36 posts

Posted 06 November 2020 - 08:50 AM

Hola

 

No tiene las propiedades MinDate y MaxDate?

 

Saludos

 Hola

 

No, no los tiene


  • 0

#4 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14448 posts
  • LocationMéxico

Posted 06 November 2020 - 11:14 AM

 Hola

 

No, no los tiene

 

Ah vaya, pues tocará agregar las propiedades, No se.... podría ser a través de un CAST del componente padre o agregar la funcionalidad a través de la creación de un nuevo componente o a través de algún helper, habría que ver que es más fácil. ¿Qué versión de Delphi estás utilizando? 

 

Saludos 


  • 0

#5 escafandra

escafandra

    Advanced Member

  • Administrador
  • 4107 posts
  • LocationMadrid - España

Posted 06 November 2020 - 05:06 PM

No reconozco ese componente como de delphi. TMonthCalendar si dispone de MinDate y MaxDate. Si estamos hablando un componente de terceros en de entrono Windows, la API nos permite manejar intervalos de fechas válidos con MonthCal_SetRange que usa el mensaje MCM_SETRANGE.

 

Saludos.


  • 0

#6 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14448 posts
  • LocationMéxico

Posted 07 November 2020 - 08:13 PM

No reconozco ese componente como de delphi. TMonthCalendar si dispone de MinDate y MaxDate. Si estamos hablando un componente de terceros en de entrono Windows, la API nos permite manejar intervalos de fechas válidos con MonthCal_SetRange que usa el mensaje MCM_SETRANGE.

 

Saludos.

 

Hola

 

Las ultimas versiones de Delphi agregaron éste componente, lo raro es que el CalendarView de la RTL de Windows si tiene estas propiedades  MINDATE, MAXDATE  pero no están en el componente, tocará, como había comentado, agregarlas de algún modo.

 

Saludos

Attached Files


  • 0

#7 escafandra

escafandra

    Advanced Member

  • Administrador
  • 4107 posts
  • LocationMadrid - España

Posted 09 November 2020 - 05:00 AM

Hola
 
Las ultimas versiones de Delphi agregaron éste componente, lo raro es que el CalendarView de la RTL de Windows si tiene estas propiedades  MINDATE, MAXDATE  pero no están en el componente, tocará, como había comentado, agregarlas de algún modo.
 
Saludos

 
Lo buscaré en Berlin. Quizás se pueda solucionar sin mucho embrollo.
 
Saludos.
  • 0

#8 escafandra

escafandra

    Advanced Member

  • Administrador
  • 4107 posts
  • LocationMadrid - España

Posted 09 November 2020 - 10:55 AM

En Berlin ese componente no aparece. Muestro la forma de controlar el calendario entre dos días dados. Como no he encontrado TCalendarView, el ejemplo lo pongo para un TMonthCalendar.
 
En el ejemplo confino el calendario entre el 1-1-2020 y el 31-1 2020 usando la API, en concreto el mensaje MCM_SETRANGE.
 
 


delphi
  1. var
  2.   ST: array [0..1] of SYSTEMTIME;
  3. begin
  4.   ZeroMemory(@ST, 2*sizeof(SYSTEMTIME));
  5.   ST[0].wYear:= 2020;
  6.   ST[0].wMonth:= 1;
  7.   ST[0].wDay:= 1;
  8.   ST[1].wYear:= 2020;
  9.   ST[1].wMonth:= 12;
  10.   ST[1].wDay:= 31;
  11.   SendMessage(MonthCalendar1.Handle, $1012 {MCM_SETRANGE}, 1 {GDTR_MIN} or 2 {GDTR_MAX}, integer(@ST));
  12. end;

Saludos.


  • 1

#9 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14448 posts
  • LocationMéxico

Posted 09 November 2020 - 07:49 PM

En Berlin ese componente no aparece. Muestro la forma de controlar el calendario entre dos días dados. Como no he encontrado TCalendarView, el ejemplo lo pongo para un TMonthCalendar.
 
En el ejemplo confino el calendario entre el 1-1-2020 y el 31-1 2020 usando la API, en concreto el mensaje MCM_SETRANGE.
 
 


delphi
  1. var
  2.   ST: array [0..1] of SYSTEMTIME;
  3. begin
  4.   ZeroMemory(@ST, 2*sizeof(SYSTEMTIME));
  5.   ST[0].wYear:= 2020;
  6.   ST[0].wMonth:= 1;
  7.   ST[0].wDay:= 1;
  8.   ST[1].wYear:= 2020;
  9.   ST[1].wMonth:= 12;
  10.   ST[1].wDay:= 31;
  11.   SendMessage(MonthCalendar1.Handle, $1012 {MCM_SETRANGE}, 1 {GDTR_MIN} or 2 {GDTR_MAX}, integer(@ST));
  12. end;

Saludos.

 

Hola amigo,

 

Ya hice la prueba y no toma la configuración como lo hace con el MonthCalendar, es probable que no funcione así ese objeto, le he puesto un rango del 1 de Julio de 2020 al 10 de Noviembre de 2020.

 

Saludos

Attached Files


  • 0




IP.Board spam blocked by CleanTalk.