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 17-05-2007
Avatar de anubis
anubis anubis is offline
Miembro
 
Registrado: mar 2007
Posts: 863
Poder: 18
anubis Va por buen camino
pregunta de dtatepicker nueva

Misterios de la tecnologia creo.
Tengo 2 datepicker con el datemode dmupdown porqu ele otro metodo me iba peor.
tengo este codigo
Código Delphi [-]
procedure Tfhabitacion.fechasalidaChange(Sender: TObject);
begin
 label24.caption:=datetostr(fechasalida.datetime);
 label30.caption:=datetostr(fecharegistro.datetime);
 fechasalida.refresh;
if (fechasalida.datetime) <= (fecharegistro.datetime) then
fechasalida.datetime:=fecharegistro.datetime+1;
diasestancia.caption:=inttostr(daysbetween(fechasalida.datetime,fecharegistro.datetime));

end;
los dos labels son de comprobacion.
Si es la primera vez que se ejecuta el programa, la fecha de salida es un dia mas que la de entrada.
Si es la primera vez que modifico la de salida para un dia menos, resulta que me lo cambia pero no realiza el if a pesar de que las dos fechas valen lo mismo, el if me lo hace cuando pulso una segunda vez.

alguna idea de esta anomalia?

gracias
Responder Con Cita
  #2  
Antiguo 17-05-2007
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 24
ContraVeneno Va por buen camino
No entiendo como es que la propiedad datemode te da problemas, las dos formas son exactamente lo mismo, simplemente se muestran de diferente manera en la pantalla. Pero esto no afecta la manera de como funciona el dtpicker.

Lo que sí me parece bastante extraño y quisiera preguntarte es:
¿Porqué haces un refresh a fechasalida?
__________________

Responder Con Cita
  #3  
Antiguo 17-05-2007
Avatar de anubis
anubis anubis is offline
Miembro
 
Registrado: mar 2007
Posts: 863
Poder: 18
anubis Va por buen camino
La verdad es que nose porque da problema el sacar el calendario porque no me actualiza bien, nose si debo ponerlo en el evento onexit o en el onchange, pero de todas formas lo que he escrito esta bien no?, el problema, como explicaba, cuando inicialmente la fecha de entrada es 17/05/2007 y la de salida es 18/05/2007, si intento cambiar la fecha de salida al 17/05/2007, me la pone en el 17 pero el if no me lo hace aunque las dos fechas sean iguales.

El refresh lo puse por si hacia falta.
Tambien he probado a poner a fechadesalida.mintodate:=fechadentrada.datetotime+1;
ahi me sale un mensaje, pero como el delphi lo tengo en ingles, nose como cambiarlo al cristiano o bien no sacar ningun mensaje.

gracias

añado. si hago lo del mensaje si funciona bien, pero en ingles y lo quiero en español.
Responder Con Cita
  #4  
Antiguo 17-05-2007
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 24
ContraVeneno Va por buen camino
¿Es un mensaje de error? Si es así, ¿que dice?

Tal vez las fechas no te den iguales porque tiene variación en las horas, recuerda que el DTPicker comprueba desde el año hasta los milisegundos.

Tal vez utilizando la función formatdatetime.

Para capturar un error y poner el mensaje que tu quieras, puedes utilizar la cláusula:
Código Delphi [-]
Try
 //acción que generar error
Except On E:TipodeExcepción do
 //aquí tu mensaje
End
__________________

Responder Con Cita
  #5  
Antiguo 17-05-2007
Avatar de anubis
anubis anubis is offline
Miembro
 
Registrado: mar 2007
Posts: 863
Poder: 18
anubis Va por buen camino
gracias, pense que en el tdatepicker cuando pones solo fecha no compara tambien las horas.
Probare otro metodo.

sobre el error, la verdad es que no se ocmo manejarlo, es decir
si es un evento change, al cambiar la fecha, me sale el aviso en ingles que la fecha es menor que....
si le pongo try
no se que va aqui, se me habia ocurrido poner
fechasalida.onchange pero nose que variable poner aqui.
gracias
Responder Con Cita
  #6  
Antiguo 17-05-2007
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Por lo que veo estás utilizando la hora también mira este ejemplo en el que se trabaja solamente con la fecha.

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(FormatDateTime('dd/mm/yy',DateTimePicker1.date + 10));
end;

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #7  
Antiguo 17-05-2007
Avatar de anubis
anubis anubis is offline
Miembro
 
Registrado: mar 2007
Posts: 863
Poder: 18
anubis Va por buen camino
gracias marcos, era sencillo cuestion de aplicar la logica .

Pero me seguia sin funcionar he tenido que hacer esto:
Código Delphi [-]
procedure Tfhabitacion.fecharegistroChange(Sender: TObject);
var
fechahoy:tdate;
begin
fechahoy:=now;
  if fecharegistro.Date<=fechahoy then
    begin
      fecharegistro.date:=fechahoy;
    end;
  if fechasalida.date<=fecharegistro.date+1 then
    fechasalida.date:= fecharegistro.date+1;
diasestancia.caption:=inttostr(daysbetween(fechasalida.date,fecharegistro.date));
end;

porque sino no me lo realiza, si le bajo a la fecha de salida dias hasta llegar a ser igual que la de entrada no me hace el if.

gracias de nuevo

lo unico que no me queda claro es lo de exception

si en este caso pongo un mindate, y le bajo, me sale aviso de que la fecha es menor, pero no puedo controlarlo con el exception
en el formshow he puesto esto
Código Delphi [-]
begin
fechasalida.mindate:=fecharegistro.date+1;
TRY
fechasalida.OnChange:=fechasalidachange;
EXCEPT ON E: EXCEPTION DO
begin
SHOWMESSAGE('LA FECHA NO PUEDE SER IGUAL A LA FECHA DE ENTRADA');
fechasalida.date:=fecharegistro.date+1;
end;
END;
pero no me lo realiza.

alguna idea?

gracias
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
Nueva Ayuda tamar Firebird e Interbase 3 16-08-2006 22:39:03
Una nueva felicitación ! gluglu La Taberna 29 09-08-2006 01:31:21
Nueva PC vtdeleon Noticias 2 10-12-2005 01:44:41
Nueva Ley Administrativa obiwuan Humor 5 12-01-2004 18:21:48


La franja horaria es GMT +2. Ahora son las 18:13:10.


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