Einzelnen Beitrag anzeigen

Benutzerbild von r_kerber
r_kerber

Registriert seit: 11. Feb 2003
Ort: Trittau
3.538 Beiträge
 
Delphi XE Professional
 
#1

TDBEdit, TDBLookupComboBox, TField und OnSetText-Event

  Alt 22. Apr 2006, 09:55
Datenbank: Oracle, aber eigentlich egal • Version: 9, 10 • Zugriff über: BDE, aber ebenfalls egal
Moin moin,

ich habe folgendes Problem. Auf einer Eingabemaske befinden sich mehrere TDBEdit-Boxen und TDBLookupComboBoxen. Sobald in einem TBEdit ein Wert eingegeben/verändert wurde, wird in einem onValidate-Event-Handler eine Stored Procedure (für alle TFields wird dieselbe SP verwendet) auf gerufen, welche die anderen Feldwerte ermittelt. Diese werden dann in die entsprechenden DB-Felder geschrieben. Dadurch ändert sich natürlich auch der Wert der TField-Objekte und somit auch der Edit- und Comboboxen, was sofort wiederum ein neues onValidate für die TFields auslöst. Damit nun dadurch keine Endlosschleife ausgelöst wird, werden der Stored Procedure zwei zusätzliche Parameter übergeben, zum einen den Sender der das aktuelle onValidate ausgelöst und den "Initial_Sender", also das Object, welches das erste onValidate ausgelöst hat. Um diesen zu ermitteln wird zusätzlich das OnSetText-Event von TField abgefangen. Diese wird ausgelöst, unmittelbar nachdem man in einem TEdit einen Wert eingibt/ändert. Doch leider funktioniert das nur mit TDBEdit. Eine TDBLookupComboBox löst kein OnSetText-Ereignis aus, wenn ein anderer Eintrag ausgewählt wird. Ich suche nun eine Möglichkeit auch für eine LookupComboBox den "Initial_Sender" zu ermitteln, also etwas in der Art
  • Element in TDBLookupComboBox ändern
  • ComboBox verlassen
  • irgendein Event --> Zwischenspeichern des auslösenden Senders
  • OnValidateEvent --> Ermittel des aktuellen Senders, Starten der SP (mit den Parametern initial_sender und sender)
  • ...
Und dieses "irgendein Event darf nur einmal ausgelöst werden, nachdem sich der in der Combobox etwas geändert hat.
  Mit Zitat antworten Zitat