Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-08-2008
shoulder shoulder is offline
Miembro
 
Registrado: abr 2008
Posts: 441
Poder: 17
shoulder Va por buen camino
MonthCalendar

Hola, no se como hacer para diferenciar el click de las flechas de ambos lados del calendario para cambiar mes, con hacer click dentro del calendario, el problema es que yo quiero que haciendo click dentro del caelndario me pase un date a un maskedit, eso funciona perfecto, pero al hacer click en las flechas de ambos lados funciona tambien con el on click y me envia 01/01/2008..etc al maskedit.

Gracias.
Responder Con Cita
  #2  
Antiguo 06-08-2008
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Yo creo que el comportamiento es el esperado. Quiero decir, cuando pulsas las teclas, realmente cambia la fecha seleccionada en el componente, porque, las flechas cambian de mes, y este cambio se refleja en la fecha seleccionada. No sé. Igual habría alguna forma de conseguir diferenciar lo que dices, pero, insisto, creo que el comportamiento es el esperado.

Fíjate que si utilizas las propiedades "MinDate" y "MaxDate", limitando al usuario a que sólo pueda elegir un día del mes actual, por ejemplo, este no podrá hacer clic en las flechas, mejor dicho, no servirá de nada, y la fecha elegida no cambiará. Pero, si el usuario puede elegir la fecha, cualquier fecha, entonces puede usar las flechas, y la fecha habrá de cambiar en consecuencia, ¿no te parece?
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 06-08-2008
shoulder shoulder is offline
Miembro
 
Registrado: abr 2008
Posts: 441
Poder: 17
shoulder Va por buen camino
MonthCalendar

Gracias, pero no me sirve porque estan cargando ausentimos de un año a la fecha y es comodo para ellos cambiar los meses con las fechas, el tema si pudiera diferenciar las flechas o sacarlas no les vendria el 01-01-2008 o el mes que elijan al maskedit.
Responder Con Cita
  #4  
Antiguo 06-08-2008
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

No sé si me he explicado bien. Al "maskedit", aprovechando el evento "Onclick", le llegará la fecha que eliga el usuario en el calendario. Entonces, ¿qué problema hay? ¿No quieres que puedan elegir una determinada fecha? Si es así aprovecha las propiedades "MinDate" y "MaxDate" del calendario. Si todavía piensas que esto no te sirve, esperemos que algún compañero te pueda ayudar a hacer lo que quieres, pero, insisto en que no le veo mucho sentido... claro, que, puedo estar equivocado.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #5  
Antiguo 06-08-2008
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Una opción es que utilices una variable Month (Integer) que inicializas al abrir el formulario:

Código Delphi [-]
Month := MonthOf(MonthCalendar1.Date);

En el evento OnClick del MonthCalendar te fijas si MonthOf(MonthCalendar1.Date) coincide con el valor de Month. Si no coincide es que se cambio el mes y evitas el llenado del MaskEdit:

Código Delphi [-]
procedure TForm1.MonthCalendar1Click(Sender: TObject);
begin
  if MonthOf(MonthCalendar1.Date) <> Month then
    Month := MonthOf(MonthCalendar1.Date)
  else
    MaskEdit := ...;
end;

Actualizas el valor de Month para que no te lo vuelva a detectar.

// Saludos
Responder Con Cita
  #6  
Antiguo 06-08-2008
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Pero, Román, ¿eso no vale lo mismo que si se usan las propiedades "MinDate" y "MaxDate"? Si usamos estas propiedades para que el usuario no pueda elegir sino un día del mes actual, aunque pulse las flechas, dará igual, no se cambiará de mes, ni tampoco la fecha, y por tanto no llegará al "maskedit". ¿No? Vamos, digo yo.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #7  
Antiguo 06-08-2008
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Como tú dices, impides que el usuario cambie de mes, pero eso no es lo que se quiere, el usuario debe poder cambiar de mes. Lo único es que al cambiar de mes no quiere que automáticamente se seleccione el del mes siguiente. Es decir, si el usuario marco el 5 de agosto, al cambiar el mes se marcaría automáticamente el 5 de septiembre (o julio) que no necesariamente debe seleccionarse. El usuario tendría que borrar el dato manualmente.

// Saludos
Responder Con Cita
  #8  
Antiguo 06-08-2008
shoulder shoulder is offline
Miembro
 
Registrado: abr 2008
Posts: 441
Poder: 17
shoulder Va por buen camino
MonthCalendar

Gracias por Responderme, si entiendo lo de Maxdate y Min date y lo de Roman, el tema es que hoy los usuarios estaban molestos porque el maskedit se cargaba con el 01 mes año que elegian con la flecha y les tapaba la seleccion hecha dentro del calendario. El tema que non los queria condicionar porque era muy comodo moverse con las flechas y es raro no poder distinguir esas dos teclas.
Responder Con Cita
  #9  
Antiguo 06-08-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola shoulder, también puedes utilizar un Calendar de la paleta Samples en vez del MonthCalendar y solo añades lo demas, como los botones para ir de mes en mes (Calendar1.PrevMonth y Calendar1.NextMonth; ), pero ya tendrías control sobre ellos.

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #10  
Antiguo 06-08-2008
shoulder shoulder is offline
Miembro
 
Registrado: abr 2008
Posts: 441
Poder: 17
shoulder Va por buen camino
MonthCalendar

Gracias a todos , tema solucionado, hice un mezcla de lo explicado por todos ustedes y anda perfecto.

previamente prefijando un mes


if monthof(MonthCalendar1.Date) <> Month then
Month := MonthOf(MonthCalendar1.Date)
else
MaskEdit1.Text := datetostr(MonthCalendar1.Date);
Responder Con Cita
Respuesta



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
MonthCalendar jorge_mosquera OOP 9 10-04-2007 00:06:45
problemas con monthcalendar reina Varios 1 19-11-2005 12:10:35
OnDblClick en MonthCalendar gluglu Varios 1 21-02-2005 21:16:12
monthcalendar pzala Varios 5 31-05-2004 23:30:57
Colorear un dia en un MonthCalendar Camomilas Varios 2 14-09-2003 17:38:24


La franja horaria es GMT +2. Ahora son las 05:32:03.


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