Ver Mensaje Individual
  #11  
Antiguo 29-04-2022
juank1971 juank1971 is offline
Miembro
 
Registrado: feb 2008
Posts: 230
Reputación: 17
juank1971 Va por buen camino
continuando con el tema

bueno amigos continuando con el navegador donde nos quedamos, ahora quise poner un dataset a la clase como propiedad Published con la idea de enlazar ese componente navegador, con un dataset en tiempo diseño y

funciona bien hasta el momento en que quise comunicarme con el dataset para interceptar algun evento del mismo

pero me da error, creo que es la forma en que estoy tratando de instanciar la clase dataset, no estoy seguro como debo hacerlo

me queda de esta manera el fragmento de código: el error lo da en vDataSet.AfterPost:= DataSetAfterPost ;


Código Delphi [-]
TNavegadorGrid = class(TRectangle)
  private
  var
    // Propiedades del contenedor Principal
    vDataSet: Tdataset;
    vbtActivo: TRectangle;
    // botones
    RecBtFirst, RecBtPrior, RecBtNext, RecBtLast, RecBtEdit, RecBtPost, RecBtDelete, RecBtFiltrar, RecBtAppend,
      RecBtRefresh, RecBtCancel: TRectangle;
    // imagenes
    ImFirst, ImPrior, ImNext, ImLast, ImEdit, ImPost, ImDelete, ImFiltrar, ImAppend, ImRefresh, ImCancel: Timage;
    // LabelContador de records
    RecordCantidad, RecordActual: integer;
    LCantidad: TLabel;
  protected
  public
    property btActivo: TRectangle read vbtActivo write vbtActivo;
    constructor Create(AOwner: TComponent); override;
    procedure ImageClick(Sender: TObject);
    procedure ActualizaRegistros;
    procedure HabilitaBoton(bt: Timage; Ha: boolean);
    procedure DataSetAfterPost(DataSet: Tdataset);
  published
    property DataSet: Tdataset read vDataSet write vDataSet;
  end;

procedure Register;

implementation
........
procedure Register;
begin
  RegisterComponents('MyComponents', [TNavegadorGrid]);
end;

constructor TNavegadorGrid.Create(AOwner: TComponent);
begin
  inherited;

  vDataSet.AfterPost:= DataSetAfterPost ;  // aqui me da error a pesar de estar asignado el dataset en el componente en diseño

  Height := 25;
  Width := 268;
  Stroke.Kind := Stroke.Kind.bkNone;
  fill.Color := TAlphaColorRec.White;
  if not(csDesigning in ComponentState) then
  begin
    // RecFirst
    RecBtFirst := TRectangle.Create(Self);
    RecBtFirst.Name := 'RecFirst';
    RecBtFirst.Parent := Self;
    RecBtFirst.Align := TAlignLayout.MostLeft;
    RecBtFirst.Stroke.Kind := Stroke.Kind.bkNone;
    RecBtFirst.fill.Color := TAlphaColorRec.Darkgray;
    RecBtFirst.Width := 25;
    RecBtFirst.Tag := 1;
    // ImFirst
    ImFirst := Timage.Create(RecBtFirst);
    ImFirst.Name := 'imFirst';
    ImFirst.Parent := RecBtFirst;
    ImFirst.Align := ImFirst.Align.alClient;
    ImFirst.Bitmap.LoadFromStream(TResourceStream.Create(HInstance, 'imFirst', RT_RCDATA));
    ImFirst.OnClick := ImageClick;
    ImFirst.Tag := 1;


...........
procedure TNavegadorGrid.DataSetAfterPost(DataSet: Tdataset);
begin
   ShowMessage ('prueba comunicacion con el dataset');
end
Responder Con Cita