Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi DBGrid - Datensatz NICHT ändern ?? (https://www.delphipraxis.net/117866-dbgrid-datensatz-nicht-aendern.html)

DevStar 26. Jul 2008 21:32

Datenbank: BDE, Firebird • Version: 5.11, 2.x • Zugriff über: Delphi

DBGrid - Datensatz NICHT ändern ??
 
Hallo,

weiß jemand, wie ich es verhindere, das der aktuelle Datensatz gespeichert wird, wenn sich der Cursorbalken (Row) im Grid bewegt, bzw. ich auf einen anderen Eintrag im Grid mit der Maus klicke?

Gruß DevStar

mkinzler 26. Jul 2008 21:35

Re: DBGrid - Datensatz NICHT ändern ??
 
DBGrid auf ReadOnly setzen

DevStar 26. Jul 2008 21:39

Re: DBGrid - Datensatz NICHT ändern ??
 
Zitat:

Zitat von mkinzler
DBGrid auf ReadOnly setzen

Schon klar, die Eigenschaft ReadOnly ist True.

Anders erkärt.

Ich habe etwas in einem DBEdit geändert, will das aber nicht übernehmen.
Klicke ich nun im dbGrid auf einen anderen Eintrag, wurde die Veränderung trotzdem übernommen.

Das bekomme ich nicht hin.

mkinzler 26. Jul 2008 21:42

Re: DBGrid - Datensatz NICHT ändern ??
 
Ruf .Cancel() auf

DevStar 26. Jul 2008 21:50

Re: DBGrid - Datensatz NICHT ändern ??
 
Beim DBGrid1CellClick(Column: TColumn) - Event?

Es soll ja nur nix geändert werden, wenn der Anwender wie wild im Grid rumklickt.

Das funktioniert nur, wenn auf die selbe Zeile geklickt wird.
Bei einer anderen Zeile besteht da Problem weiterhin.

Es gibt ja nur CellClick und nicht irgendwie GridClick oder so.

AUsserdem sollte ein Datensatzwechsel vorher abgefragt werden: DataSet.Modified

z.B.
Delphi-Quellcode:
  if DataSetHaus.Modified = true then
    if MessageDlg('Änderungen speichern?',mtConfirmation,[mbYes,mbNo],0)= mrYes then
      begin
        DataSetHaus.Post;
        //DataModuleLOP.xTransaction.Commit;
      end
    else
      begin
        DataSetHaus.Cancel;
        //DataModuleLOP.xTransaction.Rollback;
      end;
so ähnlich irgendwie. :(

Edit: Also o.g. funktioniert, halt nur in der enzsprechenden Zeile.
Muss also irgendwie auf die anderen Zeilen zu übertragen sein. :)

DevStar 26. Jul 2008 22:32

Re: DBGrid - Datensatz NICHT ändern ??
 
Man bich heute wieder doof.

Lösung: DBGrid1Enter

Dachte das gilt nicht für die Maus. :)

alzaimar 27. Jul 2008 09:00

Re: DBGrid - Datensatz NICHT ändern ??
 
Schau Dir mal die Ereignisse der TDataSource an. Dort kann (und soll) man auf das 'Post' reagieren und es ggf. abbrechen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:01 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 by Thomas Breitkreuz