![]() |
Dataset übernimmt Wert erst wenn TwwDBEdit Focus verliert
Hallo,
ich habe ein TwwDBEdit. Wenn ich den Wert darin ändere und das Edit dann verlasse, wird der Wert zuverlässig in das DataField übernommen. Wenn ich aber direkt auf meinen Speichern-button klicke ohne vorher das Edit zu verlassen, steht in dem verknüpften Field noch der alte Wert. Es sind aber knapp 10 TwwDBEdits mit diesem Dataset verbunden und man weiß so nicht, ob und welches nun verändert wurde. Gibt es eine Funktion, um direkt die ganzen Änderungen aus allen Edits ind das Dataset zu flushen OHNE es zu posten? Danke |
AW: Dataset übernimmt Wert erst wenn TwwDBEdit Focus verliert
Ok... UpdateRecord klappt.
|
AW: Dataset übernimmt Wert erst wenn TwwDBEdit Focus verliert
Gibt es da vielleicht sowas wie eine Option ala ImmidiatePost, in dem Edit?
Bei DevExpress das Gleiche, damit bei Eingabe nicht jeder einzelne Tastendruck ein OnChange auslöst, wird "standardmäßig" erst beim OnExit der Wert an das dahinterliegende DataSet weitergegeben, aber dort lässt sich dieses Verhalten umstellen. Bzw., es gibt dort an den Edits auch eine Post-Methode, wo man den aktuellen Wert manuell speichern übertragen kann. |
AW: Dataset übernimmt Wert erst wenn TwwDBEdit Focus verliert
Ich würde dann mal behaupten, Du hast einen Speichern-Button des falschen Typs.
|
AW: Dataset übernimmt Wert erst wenn TwwDBEdit Focus verliert
Zitat:
Ja, ein ToolButton/SpeedButton, der keinen Fokus bekommt, wodurch dann kein OnExit auftritt und der Wert nicht im DataSet landet, ist echt blöd, aber z.B. auch der DatasetNavigator jeglicher Hersteller besteht ausschließlich aus SpeedButtons, was deswegen echt Spaß macht. |
AW: Dataset übernimmt Wert erst wenn TwwDBEdit Focus verliert
Speichern geht eigentlich auch recht einfach mit DataSet.Post ;-)
Da ich gerne mit TActionList arbeite, gibt es in sonnem Fall auch eine Action für's speichern. ShortCut wird Strg+S und ist damit dann auch "kompatibel" zu 'ner Masse anderer Programme, bei denen das Speichern eines Dokumentes, einer Tabelle ... mit dem ShortCut Strg+S versehen ist. Man muss dann auch nicht schauen, ob man die Tabreihenfolge exakt richtig angelegt hat, kann auch Speedbuttons und DBNavigatoren benutzen, ohne irgendwelche Fokusprobleme zu bekommen. Ist man gerade in 'nem DBMemo klappt das Verlassen mit Tab auch nicht so recht, jedenfalls, wenn das Memo auch Tabs zulässt ... Und mit Strg+S ist man meist auch noch schneller, als immer erstmal mit der Maus die "richtige Stelle" zu suchen / finden ;-) |
AW: Dataset übernimmt Wert erst wenn TwwDBEdit Focus verliert
Zitat:
Das Dataset.Post speichert ja nur, was schon im Dataset drin ist, aber wenn das Edit den Wert noch nicht übergeben hat, und dann ist der Wert nach dem Post auch weg, da im AfterPost/AfterScroll die Edits sich den aktuellen Wert des Datasets holen. Das TDBEdit von Delphi übergibt den Wert sofort beim Edit.OnChange. Beim Dataset.Post wird das dann problemlos gespeichert. Es gibt aber DBEdits anderer Hersteller, die übergeben "standardmäßig" den eingegebenen Wert erst beim Edit.OnExit oder eben z.B. bei sowas wie Edit.Post oder Edit.Update, bzw. Edit.DataController.Post ... Bis zu diesem Moment weiß das Dataset noch nichtmal, dass es eine Änderung gab/gibt. Funktionsbeispiel:
|
AW: Dataset übernimmt Wert erst wenn TwwDBEdit Focus verliert
Guten Morgen,
mach vor dem Speichern einfach einen Fokuswechsel. Ganz easy auf ein Control, das immer sichtbar ist. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:56 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz