Einzelnen Beitrag anzeigen

Swann

Registriert seit: 19. Nov 2014
3 Beiträge
 
#4

AW: Auf Änderungen in TEdit reagieren

  Alt 19. Nov 2014, 17:34
Hallo ihr zwei,

vielen Dank schonmal für die raschen Antworten!

Wenn du beim OnExit bleibst, müsstest du nach dem automatischen Füllen des 2. Editfeldes dessen OnExit-Code aufrufen.
Es ist klar, dass das so geht. Allerdings wird der Code dadurch relativ unübersichtlich, und man muss gut aufpassen, dass man auch die OnExit-Methoden für wirklich alle Felder, die sich ändern können, aufruft. Daher hatte ich auf eine Möglichkeit gehofft, das Feld selbst überwachen zu lassen, wann es neuen Inhalt bekommt.


TEdit (XE2) hat ein AsInteger?
Glaub ich nicht.
Und seb´lbst wenn, dann wäre es falsch implementiert, wenn es bei Zuweisung/Änderung kein OnChange auslöst.
Ok, du hast in beiden Punkten recht. Zum einen handelt es sich nicht um ein einfaches TEdit, wie ich fälschlicherweise behauptet habe, sondern um eine Ableitung von TCustomEdit (nicht von mir geschrieben). Zum anderen habe ich da wohl nicht richtig aufgepasst, denn bei neuerlichem Testen merke ich nun, dass OnChange tatsächlich ausgelöst wird... Entschuldige bitte, mein Fehler.

Um mal ein etwas konkreteres Beispiel zu bringen: Edit1 dient dazu, die Stückzahl einer zu kaufenden Ware aufzunehmen, Edit2 den Preis pro Stück, Edit3 die Gesamtkosten, Edit4 eventuelle Rabatte und Edit5 den Endpreis (=Gesamtkosten - Rabatt). Ich habe also direkte Abhängigkeiten
Edit1 -> Edit3,
Edit2 -> Edit3,
Edit3 -> Edit5,
Edit4 -> Edit5.

Gleichzeitig gibt es eine Liste bereits getätigter Käufe. Wenn man dort auf einen Eintrag klickt, sollen die entsprechende Stückzahl und der entsprechende Preis in Edit1 und Edit2 gefüllt werden und daraus automatisch der Inhalt von Edit3 berechnet werden. OnChange tut in diesem Fall eigentlich schon das richtige. Ich hätte eben gern ein Eierlegende-Wollmilchsau-Event, das sich bei solchen automatischen Füllungen wie OnChange verhält, aber andererseits bei Benutzereingaben die Rechnungen erst durchführt, wenn der Nutzer auf Enter drückt oder das Feld sonstwie aus dem Fokus nimmt.

Viele Grüße,
Swann
  Mit Zitat antworten Zitat