Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Event für Änderungen an irgendeinem DB-Feld in Query (https://www.delphipraxis.net/159208-event-fuer-aenderungen-irgendeinem-db-feld-query.html)

RSE 18. Mär 2011 09:07

Event für Änderungen an irgendeinem DB-Feld in Query
 
Hallo,

ich möchte einen Event nutzen, der immer dann auslöst, wenn sich an einem TDataSet ein Wert/Feld ändert. D.h. immer dann, wenn in einem verbundenen datensensitiven Steuerelement eine Eingabe beendet wird (Text im TDBEdit oder Häkchen in TDBCheckBox) oder im Quelltext ein Wert gesetzt wird. Quasi so, wie ein datensensitives Steuerelement von Änderungen im Feld informiert wird, nur für die ganze Query.

TIBODatabase > TIBOQuery (Descendent of TDataSet) > TDatasource > diverse DB-Komponenten und Code

Ich möchte über jede Änderung an irgendeinem Feld in der Query informiert werden.


MfG
RSE

mkinzler 18. Mär 2011 09:18

AW: Event für Änderungen an irgendeinem DB-Feld in Query
 
Verbinde alle Steuerelemente an den selben Event

DeddyH 18. Mär 2011 09:20

AW: Event für Änderungen an irgendeinem DB-Feld in Query
 
Ich weiß nicht, ob ich es richtig verstanden habe, aber meinst Du vielleicht BeforePost von TDataset?

RSE 18. Mär 2011 09:25

AW: Event für Änderungen an irgendeinem DB-Feld in Query
 
Wieso kommt einem die erste wirklich zielbringende Idee immer direkt nachdem man einen Post erstellt hat? Hier ist meine:

Im TDataSet.AfterOpen (:o ein Event, der nicht mit On beginnt) sich für jedes TField in der Query registrieren für TField.OnChange. Blöd allerdings, wenn ich nicht der einzige im ganzen Programm bin, der sich für diese Events interessiert, aber das wär erstma ´ne Lösung... Fällt euch was besseres ein?

@DeddyH: BeforePost ist mir zu spät, ich will direkt reagieren, wenn in der TDBCheckBox das Häkchen gesetzt wird. Also quasi, wenn sich der DataBuffer im TDataSet ändert, wie beim OnChange von TField.

@mkinzler: Das geht nicht, da diese über viele Units verstreut liegen und evtl. in Zukunft weitere hinzukommen.

rapante 18. Mär 2011 10:07

AW: Event für Änderungen an irgendeinem DB-Feld in Query
 
Hy RSE,

möglicherweise wäre auch TDataset.AfterEdit was für dich(..noch ein Event ohne "on" ;) )?

Sir Rufo 18. Mär 2011 10:42

AW: Event für Änderungen an irgendeinem DB-Feld in Query
 
Zitat:

Zitat von rapante (Beitrag 1089430)
Hy RSE,

möglicherweise wäre auch TDataset.AfterEdit was für dich(..noch ein Event ohne "on" ;) )?

Wird dieses Event nicht aufgerufen, wenn man das DataSet in den EditModus setzt?
Somit kommt das Event zu selten und zu früh.

RSE 18. Mär 2011 11:17

AW: Event für Änderungen an irgendeinem DB-Feld in Query
 
Sir Rufo hat recht. AfterEdit ist ungeeignet für meine Zwecke.

Ich hab es jetzt so umgesetzt, wie vorhin beschrieben, mit den Events der TFields. Desweiteren reagiere ich auf TDataSet.AfterOpen zwecks Initialisierung. Trotzdem Danke für die Beteiligung am Thema! :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:01 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz