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
vDataSet: Tdataset;
vbtActivo: TRectangle;
RecBtFirst, RecBtPrior, RecBtNext, RecBtLast, RecBtEdit, RecBtPost, RecBtDelete, RecBtFiltrar, RecBtAppend,
RecBtRefresh, RecBtCancel: TRectangle;
ImFirst, ImPrior, ImNext, ImLast, ImEdit, ImPost, ImDelete, ImFiltrar, ImAppend, ImRefresh, ImCancel: Timage;
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 ;
Height := 25;
Width := 268;
Stroke.Kind := Stroke.Kind.bkNone;
fill.Color := TAlphaColorRec.White;
if not(csDesigning in ComponentState) then
begin
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 := 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