Ver Mensaje Individual
  #5  
Antiguo 28-11-2013
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
Cita:
Empezado por giocatore Ver Mensaje
Gracias por los consejos, pero como se imaginarán siempre queda la duda de como hacerlo y la verdad por más que no lo use me interesa mucho saber como resolver este problema.
Hola giocatore.

Un modo puede ser:
Código Delphi [-]
type
  TForm1 = class(TForm)
    ...
    DBGrid1: TDBGrid;
    bnGuardar: TButton; 
    procedure FormCreate(Sender: TObject);
    procedure DBGrid1CellClick(Column: TColumn);
    procedure bnGuardarClick(Sender: TObject);
  private
    FDisplacement: Boolean;
    procedure DataSetBeforeScroll(DataSet: TDataSet);
  public
  end;

...

implementation

procedure TForm1.DataSetBeforeScroll(DataSet: TDataSet);
begin
  if not FDisplacement then // ¿ Desplazamiento prohibido ?
    Abort; // Si, abortar
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
  FDisplacement := True; // permitir desplazamiento
  DBGrid1.DataSource.DataSet.BeforeScroll := DataSetBeforeScroll;
end;

procedure TForm1.DBGrid1CellClick(Column: TColumn);
begin
  FDisplacement := False; // prohibir desplazamiento
end;

// En algún punto del programa se debe permitir nuevamente el desplazamiento, por ejemplo:
procedure TForm1.bnGuardarClick(Sender: TObject);
begin
  with DBGrid1.DataSource.DataSet do
    if State = dsEdit then
      DBGrid1.DataSource.DataSet.Post;
  FDisplacement := True; // permitir desplazamiento
end;

Saludos
__________________
Daniel Didriksen

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