Hola EgyEgy.
Para hacerlo con los componentes de Delphi, podes valerte de un
TComboBox. Agregá un ComboBox y asigna sus items en diseño o como en el ejemplo por código.
Código Delphi
[-]
procedure TForm1.FormCreate(Sender: TObject);
begin
ComboBox1.Clear;
ComboBox1.Items.Add('Opción uno');
ComboBox1.Items.Add('Opción dos');
ComboBox1.Color:= DBGrid1.Color;
ComboBox1.Visible:= False;
end;
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if (gdFocused in State)and(Column.FieldName = 'TuCampo') then
begin
ComboBox1.ItemIndex:= -1; ComboBox1.Left:= Rect.Left + TDBGrid(Sender).Left + 2;
ComboBox1.Top:= Rect.Top + TDBGrid(Sender).Top +2;
ComboBox1.Width:= Rect.Right - Rect.Left;
ComboBox1.Height:= Rect.Bottom - Rect.Top;
ComboBox1.Visible:= True;
end
else
ComboBox1.Visible:= False;
end;
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
with DBGrid1.DataSource.DataSet do
begin
Edit;
FieldByName('TuCampo').AsString:= ComboBox1.Text;
Post; end;
end;
...
Saludos.