Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   seleccionar hora en datetimepicker desde hora especifica (https://www.clubdelphi.com/foros/showthread.php?t=70901)

gonza_619 18-11-2010 13:38:55

seleccionar hora en datetimepicker desde hora especifica
 
hola a todos, miren necesito seleccionar una hora de inicio y hora final, pero q este en el rango por ej: desde 5 pm hasta 8 pm, y que no salga de ese rango, es decir puedo seleccionar desde 6 pm hasta 7pm, q no pase de 8 y menos de 5. segun cambie el estado de una variable, osea si por ej, la variable X=1 entonces q el dtpker se habilite para seleccionar hora entre las 5 y las 8 pm.
O que el dtpcker empieze desde una hora especifica no se si sera algo como:
if x=1 then
datetimepicker1.time:=5:0:0 p.m.

tambien queria saber como ver solo la hora y minutos y no los segundos en 24hs.
muchas gracias

gonza_619 18-11-2010 14:23:43

Cita:

Empezado por gonza_619 (Mensaje 382646)
hola a todos, miren necesito seleccionar una hora de inicio y hora final, pero q este en el rango por ej: desde 5 pm hasta 8 pm, y que no salga de ese rango, es decir puedo seleccionar desde 6 pm hasta 7pm, q no pase de 8 y menos de 5. segun cambie el estado de una variable, osea si por ej, la variable X=1 entonces q el dtpker se habilite para seleccionar hora entre las 5 y las 8 pm.
O que el dtpcker empieze desde una hora especifica no se si sera algo como:
if x=1 then
datetimepicker1.time:=5:0:0 p.m.

tambien queria saber como ver solo la hora y minutos y no los segundos en 24hs.

bueno creo q me voy a decidir en guardar la hora pero cambiando dtpicker.format= HH:mm en un campo string seria algo asi?

tablex.fieldbyname('hora').asstring:=timetostr(dtpicker1.time);

estaria bien esta forma?

muchas gracias

gracias de nuevo

Caro 18-11-2010 16:19:16

Hola gonza, puedes utilizar el evento OnChange de tu DateTimePicker:

El formato de tu DateTimePicker HH:MM.

Código:

procedure TForm1.DateTimePicker1Change(Sender: TObject);
var
 HoraAct : Integer;
begin
 HoraAct := HourOf(DateTimePicker1.Time);
 //si no esta entre las 17 y 20 horas o la hora ini es mayor que la hora fin, le ponemos la hora con la que empieza el rango
 if Not((HoraAct>=17) and (HoraAct<=20)) or (CompareTime(DateTimePicker1.Time,DateTimePicker2.Time)=1) Then
  DateTimePicker1.Time := EncodeTime(17,MinuteOf(DateTimePicker1.Time),0,0);

algo parecido para tu segundo DateTimePicker que indica la hora final

Saluditos

gonza_619 20-11-2010 18:57:04

hola de nuevo , bueno mira sale de 10, pero ahora , tengo que comrpboar con un checked si se selecciono hora en dtpicker, lo que hice fue agregar showcheckbox, y luego checked en false. al parecer no funciona si cambio a formato 24 hs, no me deja seleccionar el dtpicker, como podria solucionarlo

ecfisa 21-11-2010 20:42:19

Hola gonza.

Si pones la propiedad ShowCheckBox en True y la propiedad Checked está en False no te va a permitir hacer cambios.
Esta esta última propiedad es la que te permite o no, realizar cambios.

Para despejar toda duda relizá esta prueba:
Código Delphi [-]
procedure TForm1.FormShow(Sender: TObject);
begin
  with DateTimePicker1 do
  begin
    Kind:= dtkTime;     
    Format:= 'HH:mm:ss';   // formato 24 hs
    ShowCheckBox:= True;   // mostrar casilla de verificación
    DateTimePicker1.Checked:= True; // el componente está seleccionado 
  end;
end;

Verás que si hacés click sobre la hora, minutos o segundos te permite realizar los cambios sin problemas.

Saludos. :)


La franja horaria es GMT +2. Ahora son las 04:33:05.

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