Auf closequery der Form habe ich:cxgrid Highlight (oder Farbe) geändert Zelle auf Formular closequery
if MessageDlg('Close program ?',
mtConfirmation, [mbYes,mbCancel],0) <> mrYes then CanClose := False
else if DataModule2.mytable.State in [dsEdit,dsInsert] then
if MessageDlg('Save changes ?', mtConfirmation,
[mbYes,mbNo],0) = mrYes then DataModule2.mytable.Post;
Gibt es eine Möglichkeit I (oder Farbe) eine veränderte Zelle in cxgrid markieren kann, wenn ich meine OnCloseQuery auslösen Veranstaltung ?
Ich muss nicht wissen, was geändert wurde, aber nur um zu wissen, welche Zelle geändert wurde, damit der Benutzer es sehen kann, so kann er leicht Wetter entscheiden, um die Änderungen zu speichern oder nicht.
Ich denke, Sie müssen vielleicht etwas ausführlicher erklären, was Sie erreichen wollen. Was, wenn mehrere Spalten in derselben Zeile geändert wurden? Wenn Sie "geändert" sagen, möchten Sie Änderungen, die bereits im Datensatz gespeichert sind, einbeziehen? Ist Ihre Datenmenge ApplyUpdates() s? – MartynA
Ja, ich möchte jede Zelle in der gesamten Zeile hervorheben, wenn sie geändert wurde. Dies ist vor dem Post-Ereignis, also ist noch nichts gespeichert. Das Raster befindet sich im Modus [dsEdit, dsInsert]. Nein, die Datenbank ruft applyupdates nicht auf. – user763539
Dies ist die Situation, wenn Benutzer die Tabelle ändert, vergisst, die Änderungen zu buchen und versucht, das Formular zu schließen. Bevor er das Formular schließt (und alle geänderten Daten verliert), ist es schön, ihm zu sagen, dass die Änderungen, die er an der Tabelle vorgenommen hat, noch nicht gespeichert sind und zeigen ihm (die Zellen), die geändert wurden. Verstehen ? Ich dachte vielleicht daran, die veränderte Zelle so einzufärben, dass sie gut sichtbar ist, obwohl das Highlight auch in Ordnung ist. – user763539