Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Copiar el valor de vario campo en un ComboBox (https://www.clubdelphi.com/foros/showthread.php?t=79770)

NISOTO 09-08-2012 01:53:22

Copiar el valor de vario campo en un ComboBox
 
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 . ¿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:

Código Delphi [-]
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

Cita:

Empezado por NISOTO (Mensaje 439176)
Lo que necesito es copiar el valor de cada campo en un ComboBox

Cita:

Empezado por NISOTO (Mensaje 439237)
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:
Código Delphi [-]
...
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

Cita:

Empezado por roman (Mensaje 439245)
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

Cita:

Empezado por NISOTO (Mensaje 439276)
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

Cita:

Empezado por ecfisa (Mensaje 439277)
¡ 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 :)


La franja horaria es GMT +2. Ahora son las 01:24:00.

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