primero que nada agrega a tu form un componente DBLookupComboBox
en el ListSource---> aqui enlasa el query que queres que se vea al desplegarlo...
en DataSource---> aqui enlasa el query en cual vas a referenciar con el ListSource....
para este ejemplo tengamos en cuenta que estas por decir de que provincia o estado es una persona.....
ListSource-----qryProvincia
DataSource----qryPersona
En listField: pone pcia.nombre;nombre.pais
KeyField: pone id_pcia
DataField : pone el nombre de la clave provincia en la tabla persona, por ej. pna.id_pcia
Visible:= False;
Luego tenes que copiar este codigo en el evente DBGrid1DrawColumnCell
de la grilla
Código Delphi
[-]procedure TForm1.DBGrid1DrawColumnCell (Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);begin if (gdFocused in State) then begin if (Column.Field.FieldName = 'provincia') then with DBLookupComboBox1 do begin Left := Rect.Left + DBGrid1.Left + 2; Top := Rect.Top + DBGrid1.Top + 2; Width := Rect.Right - Rect.Left; Width := Rect.Right - Rect.Left; Height := Rect.Bottom - Rect.Top; Visible := True; end; endend;
Código Delphi
[-]procedure TForm1.DBGrid1ColExit(Sender: TObject); begin if DBGrid1.SelectedField.FieldName = 'provincia' then DBLookupComboBox1.Visible := False end;
proba con eso..... espero haberme expresado bien... es muy probable que tengas que hacer unos cambios.... pero la idea es esa.Lo hice a ojo sin probarlo... no te sale.... hago un código de ejemplode verdad y te lo adjunto....Contanos despues como te fue, asi le sirve de ayuda el ejemplo otro que se encuentre con el mismo problema....