Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Varios ComboBox Relacionados (https://www.clubdelphi.com/foros/showthread.php?t=70668)

elxsoon 04-11-2010 05:36:11

Varios ComboBox Relacionados
 
Estimados, necesito crear varios ComboBox y que unos dependan de otros, por ejemplo, que el ComboBox1 tenga numeros del 1 al 50 y si en este ComboBox1 selecciono un numero por ejemplo el 10, que en el ComboBox2 aparezcan los numeros del 11 al 50, y si en el ComboBox2, selecciono el 17, que en el ComboBox3 aparezcan los numeros desde el 18 hasta el 50 y asi sucesivamente. Agradecido de sugerencias, ideas, o soluciones, me despido...

cloayza 04-11-2010 13:33:00

Podria ser asi...

Código Delphi [-]
...
  public
    { Public declarations }
    procedure setComboValues(cbox:TComboBox; fInicio, fFinal:Integer);
  end;
...

procedure TForm1.setComboValues(cbox:TComboBox; fInicio, fFinal:Integer);
var i:integer;
begin
     cbox.Items.Clear;
     for I := fInicio to fFinal do
         cbox.Items.Add(IntToStr(i));
end;

procedure TForm1.ComboBox2Enter(Sender: TObject);
begin
     setComboValues(ComboBox2, StrToInt(ComboBox1.Text)+1,50);
end;

procedure TForm1.ComboBox3Enter(Sender: TObject);
begin
     setComboValues(ComboBox3, StrToInt(ComboBox2.Text)+1,50);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
     setComboValues(ComboBox1, 1,50);
end;

Saludos...

elxsoon 04-11-2010 16:17:40

Excelente, te pasaste, es justo lo que queria, pero ya que estamos pidiendo cosas jajja, podria ser que en vez de numeros desde el 1 hasta el "X", el ComboBox, se llene de horas, por ejemplo 00:00, 00:30, 01:00 etc, etc, es que lo que necesito es controlar unas luces, segun el bloque horario, por ejemplo, que de las 00:00 hasta las 01:00 la luz este apagada y desde las 01:01 hasta las 09:00 este prendida, la idea es que los combobox, me cubran las 24 horas del dia, y no haya opcion a errores, por eso es lo que pedi antes, que el comboox2 dependa de lo ingresado en el combobox1 y asi sucesivamente.

elxsoon 04-11-2010 18:50:43

Me respondo solo, ahi consegui hacer lo que queria, les adjunto el codigo:
Código Delphi [-]
procedure TForm1.ComboBox1Change(Sender: TObject);
 
 var
    i:Integer;
 begin
 
 ComboBox2.Items.Clear;
 for i:=ComboBox1.ItemIndex to 5 do
 ComboBox2.Items.Add(ComboBox1.Items[i+1]);
 
 end;
 
 procedure TForm1.ComboBox2Change(Sender: TObject);
 var
   i:Integer;
 begin
 
 ComboBox3.Items.Clear;
 for i:=ComboBox2.ItemIndex to 5 do
 ComboBox3.Items.Add(ComboBox2.Items[i+1]);
 
 end;

h t t p : / / i m g 5 7 3 . i m a g e s h a c k . u s / i / 5 6 0 5 7 7 5 5 . j p g /
(ahi esta la imagen, hay que quitarle los espacios entre letras)

al llenar el tercer ComboBox, quedan espacios en blanco abajo del texto que corresponde y no me gusta que aparezca, en la tercera foto se aprecia lo que les comento.
habia pensado que quizas es porque en el ciclo for, que me rellena el ComboBox3 le digo que me rellene desde " i:=ComboBox2.ItemIndex to 5 do " entonces me rellena el ComboBox3 con 5 items (creo que puede ser eso) pero porque no pasa lo mismo al rellenar el ComboBox2 ????

Agradecido de que me orienten, me despido


La franja horaria es GMT +2. Ahora son las 02:32:10.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi