Ver Mensaje Individual
  #2  
Antiguo 21-06-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
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.Items.Add('Opcion tres');
  // ...
  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; // 0:muestra 1er item, 1: el 2do...
    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; // si queres que se almacene aún sin movilizarte en el DBGrid
  end;
end;
...

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 21-06-2011 a las 10:28:45.
Responder Con Cita