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.