PDA

Ver la Versión Completa : Llenar un ComboBox en delphi 7


arespremium
29-07-2007, 20:19:11
Hola estoy empezando con delphi, lo encuentro super bueno.
quiero hacer un ejercicio basico, pero aun no resulta.

Que el ComboBox1 tenga tres opciones, al seleccionar una opcion al darle al Button1 este muestre el mensaje en el Label1 del ComboBox1

Ejemplo:
ComboBox1: (tiene tres opciones a elegir)
opcion 1
opcion 2
opcion 3

Al darle en el botton1 mostrara en el label1, si es opcion 1 o opcion 2 o opcion 3

me entienden?


Button1
ComboBox1
Label1

Ver imagen (http://www.subirimagenes.com/imagenes/previo/thump_1308053form_1.gif)

dec
29-07-2007, 20:21:47
Hola,


procedure TForm1.Button1Click(Sender: TObject);
begin
Label1.Caption := ComboBox1.Text;
end;


Es decir, la propiedad "Text" del "ComboBox" alberga el texto del elemento seleccionado en este.

roman
29-07-2007, 20:24:22
En el evento OnClick del botón pones:


{
Te aseguras de que haya un elemento seleccionado.

ItemIndex es el índice del elemento seleccionado. Si es -1
es que no hay ninguno seleccionado.
}
if ComboBox1.ItemIndex <> -1 then
Label1.Caption := ComboBox1.Items[ComboBox1.ItemIndex];


// Saludos

roman
29-07-2007, 20:27:54
Es decir, la propiedad "Text" del "ComboBox" alberga el texto del elemento seleccionado en este.

No exactamente. Text almacena el texto del cuadro de edición del combo. Pero este texto puede no corresponder a ninguno de los elementos del combo.

// Saludos

dec
29-07-2007, 20:29:08
Hola,

Llevas razón Román.

MaMu
29-07-2007, 23:27:08
Yo agregaria,


ComboBox1.ItemIndex:=0;


Y el procedimiento de Roman, lo pondria en el evento OnChange, para que apenas se muestra el form, ya se este mostranto, puesto a que si esperamos al evento OnClic del ComboBox, se estaria mostranto el texto del Label como "Label1" etc.

Digo esto, para que tengas un tip mas, porque lo anterior esta perfecto.

Saludos

maru1981
30-07-2007, 04:48:45
hola amigos saben tengo un problema no tengo ni la mas minima idea de como visualizar los datos de una tabla a un combobox1 alguien podria darme un tip
y si tengo mas de 2 campos sera que es posible verlos al mismo tiempo en mi tabla

gracias por su ayuda de antemano..:D

Caral
30-07-2007, 04:57:51
Hola
Asi:

ADoQuery1.SQL.Text := 'Select nive_sall From TuTabla ';
ADoQuery1.Active := True;
While not ADoQuery1.Eof do
begin
Combobox1.Items.Add(ADoQuery1.Fields[0].Text);
ADoQuery1.Next;
Como ves se selecciona el campo, la tabla y se ingresa el dato en el combobox.
Si quieres adherir mas de un campo:

ADoQuery1.SQL.Text := 'Select nive_sall, salario_sal From TuTabla ';
ADoQuery1.Active := True;
While not ADoQuery1.Eof do
begin
Combobox1.Items.Add(ADoQuery1.Fields[0].Text +' '+ ADoQuery1.Fields[1].Text);
ADoQuery1.Next;
Saludos

maru1981
30-07-2007, 05:20:40
no se por que no se visualiza mira en la propiedad del adoquery SQL string... codeeditor

ADoQuery1.SQL.Text := 'Select nive_sall From salario';
ADoQuery1.Active := True;
While not ADoQuery1.Eof do
begin
Combobox1.Items.Add(ADoQuery1.Fields[0].Text);
ADoQuery1.Next;
end;

no me manda error y si tengo datos en mi tabla o era en el

TForm21.ComboBox1Change(Sender: TObject);

que lo tenia que hacer, ya tengo mi ADOconecction

saludos por cierto me da curiosidad tu la foto de nick eres tu o tu hija?

Roymer
30-07-2007, 05:45:41
No le resulta más simple cargar la lista del SQL o tabla aun DBComboBox?

Caral
30-07-2007, 16:21:23
Hola
No lo pongas en el editor String del adoquery, colocalo en un evento, puede ser en el evento OnCreate del form, asi:

procedure TForm33.FormCreate(Sender: TObject);
begin
ADoQuery1.SQL.Text := 'Select nive_sall From salario';
ADoQuery1.Active := True;
While not ADoQuery1.Eof do
begin
Combobox1.Items.Add(ADoQuery1.Fields[0].Text);
ADoQuery1.Next;
end;
end;
Asegurate en darle doble click al adoquery, add y colocar el campo en la pantallita, aveces da inconvenientes si el campo no esta ahí.
Saludos

maru1981
30-07-2007, 22:56:38
:rolleyes::p Gracias caral ya pude hacerlo gracias por tu ayuda y a todos que bueno que existan espacios como este...

arespremium
04-08-2007, 01:23:41
entonces seria asi?
ya que si le pongo 1 en "<> -0 then" no me aparece la opcion 1.


if ComboBox1.ItemIndex <> -0 then
combobox1.items.add('opcion 1');
combobox1.items.add('opcion 2');
combobox1.items.add('opcion 3');
Label1.Caption := ComboBox1.Items[ComboBox1.ItemIndex];
end;

maru1981
05-08-2007, 01:03:04
hola chicos ya me enseñaron a llenar un combobox quisiera saber si puedo hacer lo siguiente:

tengo mi tabla se llama salario y el salario se basa segun el nivel que tenga el trabajador
nivel 18 salario $100p
ya se como obtener mis datos en el combobox de mi tabla pero ahi solo visualizo el nivel ahora quiero que al elegir el nivel me traiga en un edit el sario que le corresponde.

espero haberme explicado saludos desde mexico.:D

eduarcol
05-08-2007, 01:59:16
Selecciona un TDBLookupCombobox, y le relacionas en la propiedad ListSource y ListField el dataset que contiene la tabla de salarios, de esta manera siempre que se seleccione unelemento de la lista te aseguras que el registro que corresponda a este se seleccione