Ver Mensaje Individual
  #7  
Antiguo 03-10-2013
Panasys Panasys is offline
Miembro
 
Registrado: ago 2007
Posts: 88
Reputación: 17
Panasys Va por buen camino
Hola ecfisa !

Bien, colocando el codigo como tu dices, el mensaje me da el ID correcto de la base, pero el ItemIndex del TComboBox es distinto.

Es decir, que cuando yo hago click en el pasajero en la grilla el valor del ID del pais de ese pasajero, por ej 208 que es Suiza en mi tabla, yo lo traslado a

Código Delphi [-]
ComboBox.ItemIndex := 208

Que en el combo el 208 es Taiwan y Suiza esta en el 204!, pero el showmessage que vos agregaste para que me muestre el Index asignado esta OK y me dice 208!

Entonces el ItemIndex del combo no me sirve, no se porque no carga los paises como debe con el item correspondiente.

Yo quiero que el combo me muestre el pais porque justo es una ventana de modificacion de datos.

Hay otra manera de acceder a la lista del combo que no sea combo.itemindex := xxx? para ver el nombre del registro en el combo?

El codigo completo:

Código Delphi [-]
procedure TFModificaRol.GrillaRolPasajerosCellClick(Column: TColumn);
begin
PasajeroID := FData.QRolPasajeros.FieldByName('ID').Value;

FData.QAux.SQL.Clear;
FData.QAux.SQL.Add('Select t1.ID, t1.APELLIDO, t1.NOMBRE,  t1.NACIONALIDAD, t2.PAIS, t1.DOCUMENTO, t1.RESIDENTE, t3.ID as ROL, t4.ID as SALIDA, t5.PASAJE, t5.ID as PASAJEID');
FData.QAux.SQL.Add('From tpasajero t1, tpais t2, trol t3, tsalidas t4, tpasajes t5');
FData.QAux.SQL.Add('Where t1.ID = "'+IntToStr(PasajeroID)+'" and t2.ID = t1.NACIONALIDAD and t3.ID = "'+IntToStr(RolID)+'" and t4.ID = t3.SALIDA and t5.PASAJERO = t1.ID');
FData.QAux.Open;

ModificaNombre.Text       := FData.QAux.FieldByName('NOMBRE').Value;
ModificaApellido.Text       := FData.QAux.FieldByName('APELLIDO').Value;
ModificaDocumento.Text  := FData.QAux.FieldByName('DOCUMENTO').Value;
ModificaEdad.Text          := FData.QAux.FieldByName('PASAJE').Value;

Nombre                         := FData.QAux.FieldByName('NOMBRE').Value +' '+ FData.QAux.FieldByName('APELLIDO').Value;

/////////////////////////////////////////////////////////////////////////////

PaisID                          := FData.QAux.FieldByName('NACIONALIDAD').Value;
PasajeID                      := FData.QAux.FieldByName('PASAJEID').Value;

FData.QAux2.SQL.Clear;
FData.QAux2.SQL.Add('Select * From tpais');
FData.QAux2.Open;

  // CARGO EL CAMPO DE PAIS
  ModificaPais.Clear;
  ModificaPais.Items.Add('Seleccione Pais');
  FData.QAux2.First;
      While Not FData.QAux2.Eof Do  // Realizar mientras no sea fin de archivo
        Begin
        ModificaPais..AddItem(FData.QAux2.FieldByName('PAIS').AsString, TObject(FData.QAux2.FieldByName('ID').AsInteger));
        FData.QAux2.Next;
        End;

ModificaPais.ItemIndex  := PaisID;

/////////////////////////////////////////////////////////////////////////////

 Label13.Caption := 'Grilla dice: '+IntToStr(PaisID)+' Combo dice: '+IntToStr(ComboBox1.ItemIndex);
end;

El resultado:



No conozco una forma de llamar al ItemIndex desde el ID asociado como me lo mostraste vos, sino estaria solucionado creo

Gracias por las molestias !!!

Javier
Responder Con Cita