PDA

Ver la Versión Completa : Como puedo llenar un combobox con informacion desde el StringGrid


Henoc
12-07-2012, 18:45:21
Buenos Dias,

Se me ha presentado esta duda recientemente... ¿Como puedo añadirle informacion a un Combobox desde un stringgrid?

mi intento fallido ha sido este:


void __fastcall TForm1::Button1Click(TObject *Sender)
{
for (int x=1;x==StringGrid1->RowCount;x++){
ComboBox1->Items->Add(StringGrid1->Cells[1][x]);}}

me podria ayudar a resolver mi duda, gracias de antemano

ecfisa
12-07-2012, 21:04:07
Hola Henoc.

No especificas si deseas copiar una columna o una fila hacia el ComboBox, por lo tanto te pongo los dos casos:

/* Copiar una columna }
void ColGridToCBox(TStringGrid *SG, TComboBox *CB, int aCol)
{
for(int r = SG->FixedCols; r < SG->ColCount; r++)
CB->Items->Add(SG->Cells[aCol][r]);
}

/* Copiar una fila */
void RowGridToCBox(TStringGrid *SG, TComboBox *CB, int aRow)
{
CB->Items = SG->Rows[aRow];
}


Llamadas ejemplo:

void __fastcall TForm1::Button1Click(TObject *Sender)
{
ColGridToCBox(StringGrid1, ComboBox1, 2); /* Copiar la columna 2 */
RowGridToCBox(StringGrid1, ComboBox1, 1); /* Copiar la fila 1 */
}


Saludos.

Henoc
12-07-2012, 22:41:17
lo que quiero hacer es por ejemplo:

el administrador agrega 10 tipos de pelicula (terror, aventura, ciencia ficcion) y quiero que al ingresar una pelicula y ponerle un "tipo" me aparescan todos los que el administrador ingreso en esa columna del stringgrid, gracias por tu respuesta y tu atencion hacia mis dudas :)

Casimiro Notevi
12-07-2012, 23:10:51
Me permito recomendarte este estupendo libro (http://db.tt/c0gXI6nJ) sobre tu c++builder y bases de datos, es gratis y es de lo mejor que puedas encontrar.

ecfisa
12-07-2012, 23:28:48
Hola Henoc.

Entonces la función que te serviría es una variante del código anterior ColGridToCBox:

// Copia celdas de una columna a un ComboBox
// cuando coincide con el genero de la pelicula

void ColGridToCBox(TStringGrid *SG, TComboBox *CB, int aCol, char *Genero)
{
for(int r = SG->FixedCols; r < SG->ColCount; r++)
if(strcmp(SG->Cells[aCol][r].c_str(),Genero)==0)
CB->Items->Add(SG->Cells[aCol][r]);
}


Saludos.