Color Calendario...
Estoy usando el componente TCalendar de la paleta Samples. ¿Alguno sabria decirme como cambiar el color del numero o del fondo de una o varias de las celdas?
Gracias de antemano. |
1 Archivos Adjunto(s)
Adjunto pongo un componente que desarrollé ya hace unos años (tiene algunos fallos, como no :)) que hace eso precisamente.
Lo único es que no muestra sólo un mes, sino todo un año. Disclaimer: No puedo prestar soporte del componente, lo dejo tal cual, cada uno que lo use bajo su responsabilidad. Lo dejo totalmente sin licencia, es decir, que cada uno haga lo que quiera con él. |
Gracias...
Hombre, se agradece, pero el tema es no tener que usar componentes externos...Me gustaria que alguien me dijera si es posible cambiar el color del Tcalendar tal y como yo quiero... Al menos por ir por otros caminos...
Agradeceria cualquier ayuda. |
No. No puedes cambiar el color de fondo, como mucho poner en negrilla el número.
Eso de usar componentes... pues la verdad, si tienes el código fuente, es como si fuera un Combobox más... ¿o no? Troffed En nombre de todos te doy las gracias, es algo que suele requerirse mucho, voy a darle una visual ;). Saludos |
oye..
Se puede entonces poner el numero en negrita en el componente TCalendar de la paleta Samples?? ( ojo, no en el TMonthCalendar de la paleta Win32 q es otro... )
Me gustaria que me dijerais como. Gracias |
...
NADIE sabria decirme si es posible poner en negrita algunos dias del calendario??
Gracias. |
...
Nadie puede decirme algo? La verdad es que me urge... ^^´
Gracias de antemano. |
En primer lugar, en un foro no hay urgencias, no sabes cuando se puede conectar alguien que sepa la respuesta, o pueda dedicar tiempo a investigar sobre ella.
En segundo lugar, por lo poco que he visto de ese componente, yo diría que no permite resaltar nada, no tiene eventos ni propiedades que lo indiquen. Necesitas algo que los componentes de que dispones no lo solucionan. La única forma es: - Instalar un componente de terceros (www.torry.net) - Crearlo tu mismo, aunque echarás más tiempo del que dispones según veo. Componentes de ese estilo hay muchos, mxCalendar son free y tienen potencial, aunque no tienen el Skin de Windows XP. Saludos. |
Gracias
Gracias por la info. Solo queria confirmar que el componente no tiene la opcion antes de meterme a instalar otro nuevo. Espero no haber ofendido a nadie con las prisas...
Gracias a todos!! ^^ |
No hombre no, ni si quiera "me he molestado", solo he querido que comprendas el funcionamiento del foro, (que algunas veces aunque lo sabemos, no nos damos cuenta), espero no haberte molestado tampoco.
Después de enviar la respuesta.... me quedé pensando en mi última afirmación: "que no tenía Skin tipo XP", bueno, en realidad no hay mucho que tunear, pero siempre podemos usar los colores especiales clInactiveCaption, clActiveCaption, etc, que todos ellos se adaptarán al tema de windows que el usuario haya elegido. Saludos |
Instalar componente maxcalendar
hola yo soy nuevo en esto, tengo el mismo problema del calendario, asi que decidi instalar el componente del maxcalendar, la cosa es que soy tan nuevo en esto que no se como verlo o incluirlo dentro de delphi, yo estoy trabajando en la version de delphi 2006, ya instale el executable del calendario Maxcalendar, si alguien podria decirme que mas sigue para visualizarlo o ejecutarlo dentro del programa, de antemano muchas gracias
|
Realmente no lo tienes instalado.
Ve a la carpeta donde se ha instalado, normalmente en: C:\Archivos de programa\MaxComponents\mxCalendar\Component Allí verás una seri de paquetes (extensión dpk). El que corresponde a BDS2006 es mxCalendar_d10.dpk, dale doble clic para abrirlo desde Delphi, Añade la ruta antes mencionada en Tools -> Options -> Borland delphi -> library path (para que encuentre los fuentes al compilar). Ahora, en el menú de delphi View -> Project Manager, creo recordar la pestaña Projects, verás el mxCalendar, usa el botón derecho para compilar y después instalar. Ahora si, aparecerá un mensaje diciendo que se ha instalado en la paleta de componentes, en concreto, en una nueva paleta llamada "Max". Saludos |
propiedades de maxcalendar componente
Muchas gracias, ya lo puedo ver, me ha servido de mucha ayuda, por ultimo y si no es molestia, tendras alguna pagina o algun tutorial donde pueda ver como puedo ocupar las propiedades de ese componente(maxcalendar)?, veras el uso que le quiero dar es que por ejemplo al dar un click sobre el calendario, me marque el dia de un color y me lo guarde en una base de datos, para que posteriormente al volver a ver el componente se muestren los dias seleccionados con un color, bueno espero que me puedan ayudar, y felicito a todos y cada uno de ellos que hace posible este foro, ya sea con sus consejos o preguntas mil gracias buen dia.. gracias lepe :)
|
Usa el evento OnGetItemStyle y en los parámetros que lleva tienes:
- La fecha que se va a pintar - la fuente (TFont) que puedes modificar a voluntad - El color de fondo (que también puedes modificarlo - (algo más que no recuerdo :D). Como ves, tendrás que usar ese evento cada vez que se cambia de mes para resaltar los días que quieras. Tutorial o Ejemplo no tengo, lo siento. Saludos |
Hola Gracias por el dato ya lo puse y me sale algo parecido a esto
mxcalendar1.OnGetItemStyle(Sender:TmxCustomCalendar;AstyleType:TmxStyleType;ADate:TDate;var AFont:Tfont; var AColor:TColor) pero he estado intentando poner algo para modificar y creo qe mi sintasix es incorrecta,podrias por favor explicarme un poco como es que deberia de ir la sintaxis para modificarlo es decir sender es el destinatario o destino ahi debo de poner el nombre de mi calendar¿?, luego Astyletype:TmxStyltype; en el primero es el nombre de la propiedad o como, se que soy un pequeño dolor de cabeza, si alguien pudiera escribir una linea con los datos de un ejemplo de como debe de ir esa linea le entenderia mejor, o q alguien me diga como lo debo de poner para poder cambiar el color, de verdad que me da pena estar haciendo tantas preguntas pero pues soy nuevo y son los pequeños topes qe me voy dando jeje... espero que esta sea mi ultima preguntilla de hoy, Gracias por su comprension jjeeje. :) |
Saludos |
Eso que quieres, creo que en la Jedi hay un control que te pone en color el los dias de las semana que quieras..
|
Cita:
Saludos |
Si que lo hay, pero esta asociado a un Text, al menos el que yo use hace poco, y puedes colorear los dias de la semana (yo lo hice del finde (sabado y domingo)).
|
mmm, creo que no entiendo un poco sus tecnicismos, pero si me sirvio de mucho la ayuda que me proporcionaron,ya puedo cambiar y colorear los dias, (que bien eso esta muy perfecto!!) pero lo hago de forma manual, creo q eso esta bien por el momento, (no esta mal para un principiante en delphi 2006)ahora mi proximo reto es guardar las fechas en una tabla en una bd en postgree, ya tengo la tabla, solo me gustaria si me pudieran decir que componente me recomiendan que utilize para guardar los datos de tipo fecha en la tabla, de antemano muchas gracias por el apoyo!! :)
|
Lo lamento, no he usado postgree en mi vida.
Saludos |
ok, muchas gracias de todos modos, con lo que me has dicho me ha ayudado mucho... buen dia :)
|
Cita:
oye ahi en donde esta la sintaxys para colorear la fecha que yo quiera, yo he asignado manualmente las fechas y si se pintan, mi duda es... hay una manera de que pueda hacer lo mismo pero introduciendo las fechas desde un Tedit, o caja de texto?, si se puede, podrias poner un codigo de ejemplo, please, por que he intentado ligarlos y no he podido, |
Necesitarás un sitio donde guardar todas las fechas que quieres resaltar, por ejemplo un array of TDate. Ese array debe ser global al formulario.
Mira la ayuda de SetLength para cambiar el tamaño de ese array dinamicamente. Después dentro de ese evento, recorres el array y si la fecha Adate = Fechas[i] entonces pintas. Saludos |
Conversionde Datos String A Word
hola, sabes estoy ocupando el componente tmaxcalendar, para sombrear las fechas de un color determinado, pues bien ya hice todo el procedimiento y pues a las fechas se sombrean pero por medio de codigo, entonces yo quise hacer lo mismo pero automaticamente, entonces ya hice mi conexion con una bd y tengo el campo en un DBedit. lo que yo quiero es que me sombrie todas las fechas que vayan apareciendo en el BDedit pero a la hora de pasar los datos me dice que no son compatibles
[Pascal Error] conf_calendario.pas(145): E2010 Incompatible types: 'Word' and 'string' estos datos, como podria hacerlo ? dejo parte de mi codigo para mayor informacion procedure TForm5.diedClick(Sender: TObject); begin prueba:= DBedit3.EditText; showmessage(prueba);//aqui esta todo correcto me trae el registro de la bd end; function cambiaFormato(fecha:String):String; begin an:=Copy(fecha,3,2); mes:=Copy(fecha,6,2); dia:=Copy(fecha,9,2); cambiaFormato:=an+','+mes+','+dia; end; procedure TForm5.mxCalendar1GetItemStyle(Sender: TmxCustomCalendar; AStyleType: TmxStyleType; ADate: TDate; var AFont: TFont; var AColor: TColor); begin nuevaFecha:=cambiaFormato(prueba); segundafecha:= strtodate (nuevaFecha); segundafecha:=encodedate(an,mes,dia); if (ADate = primefecha) or (Adate=segundafecha) then begin AFont.Style:= AFont.Style + [fsBold]; // poner en negrita la letra de ese día AColor:=clRed; // color de esa fecha en rojo end; end; |
Aquí "an" está en formato dos dígitos, es decir 02 para referirte al año 2002, la función lo entenderá como 1902, ya que el calendario base empieza en 1900, y al esperar un Word (que al fin y al cabo es un integer), lo interpreta mal. Obliga al usuario a escribir 4 dígitos para el año. Saludos |
Muchas gracias, tenias mucha razon, solo agregue los numeros complementarios a la funcion y quedo listo, gracias por la ayuda
|
La franja horaria es GMT +2. Ahora son las 11:31:39. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi