PDA

Ver la Versión Completa : Copiar el valor de vario campo en un ComboBox


NISOTO
09-08-2012, 01:53:22
Hola a todos

Tengo un incombeniente haber si me pueden ayudar.

Tengo una base de datos Materias con el indice Salon, con los campos

Salon *
Materia1
Materia2
Materia3
Materia4
Materia5

Lo que necesito es copiar el valor de cada campo en un ComboBox. Todo es con InterBase.

Les agradesco haberme escuchado...

roman
09-08-2012, 01:58:08
No entiendo. ¿Esas son las columnas de una tabla? ¿Quieres un combo para cada columna? Explica mejor.

// Saludos

NISOTO
09-08-2012, 18:51:37
Claro esas son las columnas, y quiero que me muetre en 1 solo Combobox el contenido de cada columna, de un registro que yo selecccione.

Gracias,

Casimiro Notevi
09-08-2012, 18:56:15
¿En un combo el contenido de cada columna?

roman
09-08-2012, 19:04:12
Lo que no entiendo es eso de contestar con http://www.clubdelphi.com/foros/images/icons/icon13.gif. ¿Qué es lo que desapruebas de mi respuesta?

En fin, yo usaría el evento AfterScroll del dataset que tengas asociado a tu tabla, y ahí añadiría uno a uno los campos:


ComboBox1.Items.Clear;
ComboBox1.Items.Add(DataSet['Salon']);
ComboBox1.Items.Add(DataSet['Materia1']);
ComboBox1.Items.Add(DataSet['Materia2']);

etc.


// Saludos

ecfisa
09-08-2012, 19:43:04
Lo que necesito es copiar el valor de cada campo en un ComboBox
quiero que me muetre en 1 solo Combobox el contenido de cada columna, de un registro que yo selecccione.
Hola NISOTO.

De acuerdo a lo que entiendo de tus mensajes, sería:

...
procedure TForm1.FormCreate(Sender: TObject);
const
SEP = ', ';
var
i: Integer;
s: string;
begin
DataSet.Open;
ComboBox1.Items.Clear;
while not DataSet.Eof do
begin
s:= '';
for i:= 0 to DataSet.FieldCount-1 do
s:= s + DataSet.Fields[i].AsString + SEP;
SetLength(s,Length(s)-Length(SEP));
DataSet.Next;
ComboBox1.Items.Add(s);
end;
ComboBox1.ItemIndex:= 0;
end;

...

(* Código de respuesta a la selección *)
procedure TForm1.DBGrid1CellClick(Column: TColumn);
const
SEP = ', ';
var
i: Integer;
s: string;
begin
s:='';
for i:= 0 to DataSet.FieldCount-1 do
s:= s + DataSet.Fields[i].AsString + SEP;
SetLength(s,Length(s)-Length(SEP));
ComboBox1.ItemIndex:= ComboBox1.Items.IndexOf(s);
end;
...


Saludos.

roman
09-08-2012, 19:48:57
Yo recomendaría usar AfterScroll ya que no depende del control que se use para visualizar los datos.

// Saludos

ecfisa
09-08-2012, 19:52:31
Yo recomendaría usar AfterScroll ya que no depende del control que se use para visualizar los datos.

// Saludos
Hola roman.

Si estoy de acuerdo; mi intención fué sólo ejemplificar el código de respuesta al evento que el elija.

Saludos. :)

NISOTO
09-08-2012, 23:13:01
Hola a todos.

La respuesta fue acertada y me sacaron de un gran a puro.
roman diculpa lo del simbolo, me equivoque a mandar el mensaje.

El mejor foro de Delphi que he visto.

Gracias a todos...

ecfisa
09-08-2012, 23:20:43
El mejor foro de Delphi que he visto.
¡ Totalmente de acuerdo !

No puedo menos que aprovechar este mensaje para agradecer a todos los compañeros por hacer que así sea. #:-)#

Saludos :)

Casimiro Notevi
09-08-2012, 23:55:00
¡ Totalmente de acuerdo !
No puedo menos que aprovechar este mensaje para agradecer a todos los compañeros por hacer que así sea. #:-)#
Saludos :)

Gracias, entre otros, a ti mismo :)