Ver Mensaje Individual
  #2  
Antiguo 23-06-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Vamos a ver, no sé qué tan eficiente resulte pero al parecer funciona.

El punto aquí es que los valores del PickList cambian de registro a registro así que debemos llenar la lista según el registro en el que estemos. Primero pensé en el evento AfterScroll pero tiene dos problemas: funciona si nos movemos sobre un registro ya existente pero no si estamos insertando uno nuevo, y además estaríamos actualizando el PickList incluso si no entramos a editar el campo. Así que opto por el evento OnCellClick del DBGrid:

Código Delphi [-]
procedure TForm1.DBGrid1CellClick(Column: TColumn);
begin
  if Column.Title.Caption = 'PRE_REAL' then
  begin
    Column.PickList.Clear;
    Column.PickList.Add(Table1.FieldByName('PRECIO1').AsString);
    Column.PickList.Add(Table1.FieldByName('PRECIO2').AsString);
    Column.PickList.Add(Table1.FieldByName('PRECIO3').AsString);
 end;
end;

// Saludos
Responder Con Cita