Einzelnen Beitrag anzeigen

mm1256

Registriert seit: 10. Feb 2014
Ort: Wackersdorf, Bayern
640 Beiträge
 
Delphi 10.1 Berlin Professional
 
#1

Datenbank-Komponente die auf Feldinhalt-Änderung reagiert

  Alt 8. Jun 2016, 08:52
Hallo,

folgende Ausgangs-Situation: Ein Datenmodul mit einer TQuery/TTable und ein Formular mit einem DBGrid und einem DBNavigator. Also Datenzugriff und GUI sauber getrennt, wie es sich gehört.

Der User hat mehrere Möglichkeiten in der DB zu navigieren:

- Mit der Tastatur
- Click auf den Navigator
- Mausclick irgendwo im DBGrid

Angenommen der User hat eine Kundentabelle zur Ansicht auf dem Bildschirm und nun möchte ich wissen, wann sich der angezeigte Inhalt eines bestimmten Datenbank-Feldes ändert, z.B. der Ort. Ist das der Fall, soll eine bestimmte Aktion im Formular stattfinden.

Der klassische Weg den ich kenne und derzeit benutze ist der Event "AfterScroll" der Query bzw. Table. Im Formular löse ich dann die entsprechende Aktion aus.

  Datamodule.Table.AfterScroll := Form1.MeineAfterScrollProc; So weit so gut, aber, umständlich wird das, wenn der AfterScroll im Datamodule auch vorhanden ist, und ausgeführt werden soll. Oder wenn ein weiteres Formular geöffnet ist, dass die selbe TTable benutzt, und eine ganz andere (oder überhaupt keine) AfterScroll-Action ausgeführt werden soll. Alles machbar wie gesagt, aber eben umständlich.

Abhilfe wäre eine nicht visuelle Komponente mit den Eigenschaften

Enabled: Boolean;
DataSet: TDataSet;
DataField: String; (das zu überwachende Feld)

und dem Ereignis "OnFieldValueChange".

Meine Frage nun: Gibt es so was schon fertig?

Wenn nein, würde ich es gerne selber machen. Habe aber mit Komponentenentwicklung nichts bzw. nur sehr wenig am Hut. Wie würdet ihr es anfangen: ableiten ja/nein, wenn ja, von welcher Komponente?
Gruss Otto
Wenn du mit Gott reden willst, dann bete.
Wenn du ihn treffen willst, schreib bei Tempo 220 eine SMS
  Mit Zitat antworten Zitat