Hola.
Cita:
Empezado por José Luis Garcí
Mucho gusto en saludarte ecfisa, en este caso no me vale, ya que lo controlo mediante un datasource y no puedo poner el ibdataset en el evento DataSetBeforePost y no quiero tocar este ya que desde otro formulario debe funcionar normal.
|
Pero no es necesario dejar el evento asignado, podes asignar el evento al entrar al form y liberarlo al salir, v.gr.:
Código Delphi
[-]
...
type
TForm1 = class(TForm)
DBGrid1: TDBGrid;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
procedure DataSetBeforePost(DataSet: TDataSet);
public
end;
...
implementation
uses DataModule1;
var
PostEnabled: Boolean = False;
procedure TForm1.DataSetBeforePost(DataSet: TDataSet);
begin
if not PostEnabled then
Abort;
PostEnabled:= False
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
DBGrid1.DataSource.DataSet.Open;
DBGrid1.DataSource.DataSet.BeforePost := DataSetBeforePost;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
DBGrid1.DataSource.DataSet.BeforePost := nil;
end;
...
begin
PostEnabled:= True;
DBGrid1.SetFocus
end;
end.
Saludos