Ver Mensaje Individual
  #4  
Antiguo 27-11-2010
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 Caminante.
Ahora entiendo lo que buscas.
Podrías utilizar un ComboBox insertándolo en el campo correspondiente de la grilla.
No uso el JVdblookupcombobox, pero esto funciona correctamente en un TDBGrid, probá si te funciona con ese componente

Código Delphi [-]
...
interface
procedure TForm1.FormShow(Sender: TObject);
begin
  ComboBox1.Clear;
  ComboBox1.Items.Add('Unidades');
  ComboBox1.Items.Add('Kilogramos');
  ComboBox1.Style:= csDropDownList; // o el estilo que quieras
  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.Field.FieldName = 'Campo_de_Unidades') then
  begin
    ComboBox1.Left := Rect.Left + DBGrid1.Left + 2;
    ComboBox1.Top := Rect.Top + DBGrid1.top + 2;
    ComboBox1.Width := Rect.Right - Rect.Left;
    ComboBox1.Height := Rect.Bottom - Rect.Top;
    ComboBox1.Visible := True;
  end;
end;

procedure TForm1.DBGrid1ColExit(Sender: TObject);
begin
   if DBGrid1.SelectedField.FieldName = 'Campo_de_Unidades' then
    ComboBox1.Visible:= False;
end;

procedure TForm1.ComboBox1Change(Sender: TObject);
begin
  Caption:= (Sender as TComboBox).Text;
  if (Sender as TComboBox).Text = 'Unidades' then
   // PASAR A UNIDADES
  else
   // PASAR A KILOGRAMO
end;

Ajusté los campos y la propiedad visible en el evento OnShow para mayor legibilidad, pero lo podrías asignar en tiempo de diseño.

Saludos.

Última edición por ecfisa fecha: 28-11-2010 a las 00:10:20.
Responder Con Cita