Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-03-2007
The_Avatar The_Avatar is offline
Miembro
 
Registrado: ene 2006
Posts: 43
Poder: 0
The_Avatar Va por buen camino
Preguntas...

Veamos, he probado tu codigo, y lo que hace es cambiar el color de TODOS los dias laborables ( lunes a viernes ).
He probado con:
Código Delphi [-]
     if (astyletype=stday)and(Adate=20/03/2007) then begin
           Acolor:=clred;
     end;
pero no me resalta el dia 20...
Sabes como logra señalar dias concretos??
Gracias de nuevo!! ^^
Responder Con Cita
  #2  
Antiguo 16-03-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
Tienes que usar un tipo TDateTime... por ejemplo:

Quiero resaltar el dia 20 de cada mes:
Código Delphi [-]

uses DateUtils:

var Resalta:TDateTime:
begin
Resalta := RecodeDay(ADate, 20);

if Adate = Resalta then
  color := clRed
else
  color := clBlack;

"ADate" es el parámetro de ese evento. Si te fijas lo que hago es comparar si la fecha que se va a pintar coincide con el día 20 de ese mes.

No trae ayuda, pero trae el código fuente, así que manteniendo control pulsado mientras haces click sobre la palabra "stDay" te llevará más o menos a esto:
Código Delphi [-]
  TmxStyleType = (stSelected, stToday, stDay, stWeekEnd, stIndirect );
Intuyo que:
- StSelected es la fecha seleccionada en el calendario
- StToday si se trata de la fecha actual de windows.
- StDay (de lunes a viernes)
- stWeekEnd (si es un fin de semana, según el código fuente, usa sábado y domingo.
- stIndirect.... no lo he mirado a fondo, creo que es para los días de otro mes... me explico: Si el día 1 de abril empieza en miercoles, entonces puede pintar los días 30 y 31 de Marzo en el Primer Lunes y Martes del mes abril. (hay que retocar otras propiedades para que eso funcione.

Ten en cuenta que solo puedes pintar los colores del mes que se está mostrando, no de otros meses.

Si quieres pintar un conjunto de fechas, podrías usar algo así:
Código Delphi [-]
var  Resalta:  array of Tdate;
begin
  SetLength(Resalta, 10) ; // creamos un array de 11 posiciones, empieza en cero.
  Resalta[0] : = EncodeDate(2007,3, 20);
  etc.
end;

//ahora en ese evento de pintado:
color := clText
if AStyleType = stDay then
  for i:= low(Resalta) to high(Resalta) do
    if ADate = Resalta[i] then
    begin
      color := clRed
      break;
    end;

El hecho de preguntar por if AStyleType = stDay, es porque solo quiero que entre en ese bucle en los días laborables, así impedimos que entre preguntando en fines de semana... es decir, nos estamos ahorrando 8 bucles del for en cada mes (todos los fines de semana de ese mes). Como es un evento que se aplica por cada día a pintar del mes, tenemos que hacerlo eficiente.

En fin, técnicas hay muchas, solo tienes que guardar las fechas que quieres resaltar y después comparar.

Saludos.
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.

Última edición por Lepe fecha: 16-03-2007 a las 13:27:06.
Responder Con Cita
  #3  
Antiguo 16-03-2007
The_Avatar The_Avatar is offline
Miembro
 
Registrado: ene 2006
Posts: 43
Poder: 0
The_Avatar Va por buen camino
cucha...

CACHIS!! ^^´
Ahora me he fijado que en este componente al pasar de mes los dias se vuelven locos... Es esto normal? Me lo hace con un componente recien puesto y sin modificar en absoluto...
Responder Con Cita
  #4  
Antiguo 16-03-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
¿Has llevado a los días al psicólogo? ¿qué es eso de "locos"? jajaja.


Que conste que lo más fácil es:
Código Delphi [-]
 if DayOf(ADate) = 20 then
   // el día 20 de cada mes

Pero supongo necesitarás resaltar fechas teniendo en cuenta el mes, además del día, si explicas mas detenidamente lo que necesitas, quizás pueda ayudarte.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #5  
Antiguo 16-03-2007
The_Avatar The_Avatar is offline
Miembro
 
Registrado: ene 2006
Posts: 43
Poder: 0
The_Avatar Va por buen camino
...

Gracias a ti ya he logrado hacer lo que queria ( resaltar uno o varios dias del mes ). Ahora el problema es que NO SE X Q al darle al boton de pasar mes los dias se vuelven locos...es decir: se descolocan de sitio, se saltan dias...
Esto ocurre con un componente recien puesto en el form y q no tiene NINGUNA MODIFICACION x mi parte.
Sabes a q es debido??
Gracias.
Responder Con Cita
  #6  
Antiguo 16-03-2007
The_Avatar The_Avatar is offline
Miembro
 
Registrado: ene 2006
Posts: 43
Poder: 0
The_Avatar Va por buen camino
vale...

Me fui a la pagina del autor y baje la ultima version ( 2.1 ) y la instale reemplazando a la que tenia ( 2.0 ) y ahora todo parece funcionar correctamente.
Leccion aprendida: no bajar las cosas de Torry a pelo
Muchas gracias de verdad x ayudarme en serio...
Un saludo!!
Responder Con Cita
  #7  
Antiguo 16-03-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
Puedes subir un par de capturas de pantalla a imageShack?? porque no lo entiendo, es más, estoy haciendo pruebas con él en BDS2006 y se comporta perfectamente.

Los días tienen que saltar por fuerza. Si un mes termina en Jueves, el siguiente mes tiene que empezar en Viernes... (no logro comprender lo que dices).

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #8  
Antiguo 16-03-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
Hombre, me alegro.

Ya me estaba volviendo loco yo .
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Componente Calendar Delphi 6 VRO OOP 2 07-04-2008 21:18:06
problemilla con calendar weke Varios 3 06-07-2004 16:23:40
Calendar Escribible Metepatas Varios 1 24-09-2003 19:56:29
Historia triste con el CALENDAR!!! Metepatas Varios 1 17-09-2003 14:23:10


La franja horaria es GMT +2. Ahora son las 17:38:58.


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
Copyright 1996-2007 Club Delphi