PDA

Ver la Versión Completa : generar listado de horas


acrophet
10-06-2004, 12:41:34
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)


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:

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!!!