Ver Mensaje Individual
  #4  
Antiguo 06-05-2012
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.

Lo más simple es crear el evento en el mismo TDataModule: Click sobre el DataSet -> Click pestaña Events -> Doble click sobre AfterScroll.

Pero al estar el DataSet en un DataModule, te conviene asignarlo manualmente en donde lo utilices y liberarlo al finalizar su uso:
Código Delphi [-]
type
  TForm1 = class(TForm)
    DBGrid1: TDBGrid;
    procedure FormCreate(Sender: TObject);
    ...
    procedure FormDestroy(Sender: TObject);
  private
    procedure DataSetAfterScroll(DataSet: TDataSet);
  public

  end;

var
  Form1: TForm1;

implementation

uses Unit2; // DataModule

procedure TForm1.DataSetAfterScroll(DataSet: TDataSet);
begin
  Caption:= DBGrid1.SelectedField.AsString;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  DataModule.DataSet.AfterScroll:= DataSetAfterScroll; // asignar procedimiento al evento
end;

...

procedure TForm1.FormDestroy(Sender: TObject);
begin
  DataModule.DataSet.AfterScroll:= nil;  // liberar
end;
Deberás asegurarte que el DataModule esté creado con anterioridad a donde realices la asignación (Form1 en el ejemplo) ya que si no, estarías intentando asignar un evento a algo inexistente y lanzará una excepción.

Saludos.
__________________
Daniel Didriksen

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

Última edición por ecfisa fecha: 06-05-2012 a las 20:42:28.
Responder Con Cita