Amigos esto es lo mas funcional pero cochino que he encontrado, funciona muy bien y hace lo que quiero que en resumen es que el usuario cada vez que toque algun control conectado a datos este se actualiza sin preguntar ni interactuar con el usuario me quedo asi, lo veo on poco feo pero no encuentro otra manera de hacerlo.
este esta ya hecho para varios controles DB cada uno tiene asociado el evento onclick o de lo contrario el evento OnChange a el procedimiento onClickControl y estan conectados a FDQuery 's cada FDQuery hay que ponerle la propiedad CachedUpdates a true:
Código Delphi
[-]
procedure TForm1.onClickControl(Sender: TObject);
begin
if Sender is TDBCheckBox then
ControlClicked := (Sender as TDBCheckBox).Name;
if Sender is TDBRadioGroup then
ControlClicked := (Sender as TDBRadioGroup).Name;
if Sender is TDBedit then
ControlClicked := (Sender as TDBedit).Name;
end;
procedure TForm1.onMouseLeaveControl(Sender: TObject);
begin
if Sender is TDBCheckBox then
if (sender as TDBCheckBox).Name = ControlClicked then
begin
ControlClicked := '';
TFDQuery(TDBCheckBox(Sender).datasource.dataset).ApplyUpdates(0);
end;
if Sender is TDBRadioGroup then
if (sender as TDBRadioGroup).Name = ControlClicked then
begin
ControlClicked := '';
TFDQuery(TDBRadioGroup(Sender).datasource.dataset).ApplyUpdates(0);
end;
if Sender is TDBedit then
if (sender as TDBedit).Name = ControlClicked then
begin
ControlClicked := '';
TFDQuery(TDBedit(Sender).datasource.dataset).ApplyUpdates(0);
end;
end;