Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   generar listado de horas (https://www.clubdelphi.com/foros/showthread.php?t=11297)

acrophet 10-06-2004 12:41:34

generar listado de horas
 
Hola, me gustaria saber como puedo hacer para que en un combobox me aparezca para poder seleccionar una hora de entre una hora de comienzo, otra de fin y un intervalo que previamente selecciono.
Es decir, en un edit pongo la hora de inicio, las 09:00, en otro la de fin, las 22:00, y en otro edit pongo el intervalo en minutos, 5 minutos.
Yo lo que querria es que en el combobox me saliera para elegir 9:00, 9:05, 9:10, 9:15, etc.
Alguien me podria ayudar?? Es que todo lo que he intentado hasta ahora no me resulta tal y como yo quiero.

Un saludo y gracias anticipadas a todos!

cbrrr 10-06-2004 13:51:45

Más o menos podría ser una cosa así (faltaría afinarlo un poco, pero bueno, para que pilles la idea)

Código Delphi [-]
 procedure TForm1.FormCreate(Sender: TObject);
 var
   t1, t2, t3: TTime;
 begin
   t1 := StrToTime('09:00:00');
   t3 := StrToTime('09:05:00') - t1;
   t2 := StrToTime('10:00:00');
   while t1 <= t2 do
   begin
     ComboBox1.Items.Add( DateTimeToStr(t1) );
     t1 := t1 + t3;
   end;
 end;
Espero que te sea de ayuda

tcp_ip_es 10-06-2004 13:56:19

supongo que una vez que tienes hora de inicio y hora de fin e intervalo es fácil hazte dos while encadenados; uno que vaya de hora inicio a hora fin aumentando de uno en uno, y en el otro que vaya aumentando hasta sesenta con el intervalo definido, y vas metiendo los valores en el combobox.

Saludos, Tony

acrophet 10-06-2004 17:04:50

Al final ya he conseguido lo que me proponia de la siguiente forma:

Código:

procedure TForm2.dbComboBox1Enter(Sender: TObject);
var
  horaini,horafin,hora:TTime;
  intervalo:double;
  horastr,horamax:string;
begin
  intervalo:=1/1440*StrToInt(Edit2.Text);
  horaini:=StrToTime(Edit3.Text);
  horafin:=StrToTime(Edit4.Text)-intervalo;
  DBCombobox1.Items.Clear;
  While Horaini<HoraFin do
    begin
      horastr:=TimeToStr(horaini);    //guardamos la hora en la variable
      horastr:=Copy(horastr,1,Length(Horastr)-3); //le quitamos los ultimos digitos (:00)
      DBComboBox1.Items.Add(horastr);  //añadimos al combobox la hora
      horaini:=horaini+intervalo;
    end;

end;

Gracias a todos por la ayuda prestada!!!


La franja horaria es GMT +2. Ahora son las 15:07:38.

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