En el ejemplo de Jachguate no llego a comprender , que tiene que ver la clase
TEtiquetaV
Por otro lado , según me dijeron tenia que programar una propiedad en mi programa y lo he hecho de esta manera y me funciona , aunque no sé si es la forma más correcta .
Tengo un Datamodule y un FrmReformas .
En el Datamodule ,tengo la tabla de reformas , TReformas con su datasource , y en el formulario tengo una tabla de componentes que corresponde a cada reforma . De tal manera que si en el formulario de Reformas , vas recorriendo la tabla de Reformas , tienen que ir apareciendo los componentes de dicha reforma .
Para ello , la tabla TComponentes , hago un filter para igualar el campo de reforma con el código de la tabla reforma .
Asi en el Datamodule tengo esto :
Código Delphi
[-]
private
FNotifyToTFReformas:TDataChangeEvent;
public
property NotifyToTFReformas:TDataChangeEvent read FNotifyToTFReformas
write FNotifyToTFReformas;
implementation
procedure TDM.dsReformasDataChange(Sender: TObject; Field: TField);
begin
If Assigned(FNotifyToTFReformas) Then
Begin
FNotifyToTFReformas(Sender, Field);
end;
Bien esto es lo que he puesto en el DataModule , ahora en el formulario FReformas , donde esta la tabla componentes , he puesto lo siguiente
Código Delphi
[-]
public
procedure ReformaDataChange(Sender: TObject; Field: TField);
implementation
procedure TFReformaDataChange(Sender: TObject; Field: TField);
begin
Caption := ' Reforma : ' + DM.TReformas.FieldByName('titulo').AsString + ' ';
TComponentes.Filter:='icodReforma = '''+DM.TReformas.FieldByName('Codigo').AsInteger+'''';
end;
procedure TFReformas.FormCreate(Sender: TObject);
begin
DM.NotifyToTFReformas:=ReformaDataChange;
end;
procedure TFReformas.FormClose(Sender: TObject; var Action: TCloseAction);
begin
DM.NotifyToTFReformas:= nil;
end;