Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi DBGrid + eigener DBNavigator (https://www.delphipraxis.net/5140-dbgrid-eigener-dbnavigator.html)

Stiftpritt 25. Mai 2003 14:50


DBGrid + eigener DBNavigator
 
Hallo,

ich habe ein DBGrid, das mit Daten gefüllt ist. Das DBGrid ist ReadOnly. Klick man auf eine Zeile, werden in dbEdit Feldern die Daten zum Ändern angezeigt. Soweit funktioniert alles.

Da ich den Delphi DB-Navigator nicht nutzen kann, habe ich eigene Buttons erstellt (Neu, Speichern, Löschen). Änderungen der Daten sollen beim Navigieren (durch das Klicken auf eine Zeile im DBGrid) nicht automatisch übernommen werden. Wurden also Daten in den DBEdit Feldern geändert und wird danach -ohne den Button Speichern angeklickt zu haben- zu einem anderen Datensatz navigiert, soll ein MessageDialog nachfragen, ob die Äbderungen übernommen werden.

Und da ist das Problem: Die Änderungen werden beim Navigieren automatisch übernommen. Wie kann ich mich "dazwischen schalten" um nachzufragen (MessageDialog), ob die Änderungen übernommen werden sollen?

Gruß
Alex

woki 25. Mai 2003 17:21

Hallo,

Ereignis beforepost des Datasets, das die Daten des DBGrids hält.
Wenn die Daten nicht übernommen werden sollen, mit abort den Postvorgang hier abbrechen, falls die Daten endgültig verworfen werden sollen, gibt es noch cancel.

Grüße
Woki

Stiftpritt 26. Mai 2003 09:43

Aber woher weiss ich im beforePost Ereignis, von wem das Ereignis ausgelöst wurde? Das Ereignis wird ja nicht nur beim Navigieren, sondern auch beim Klicken auf den Button "Speichern" ausgelöst. Und die Nachfrage, ob die Änderungen übernommen werden sollen, soll natürlich nur beim Navigieren im DBGrid erscheinen.....


Gruss
Alex

woki 26. Mai 2003 09:58

Alos erstmal, solange das Dataset im editmode ist kannst du eh nicht mavigieren, vorher mußt du übernehmen oder verwerfen (post oder cancel).

Und dann kannst Du Dir ja, so wäre es am einfachsten denke ich, in einer (Feld)variablen merken, wer verantworltich ist, und das in beforepost abfragen, oder die kannst die Ereignisbehandlung dynamisch an oder abklemmen.

Grüße
Woki


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:46 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz