Einzelnen Beitrag anzeigen

Benutzerbild von anse
anse

Registriert seit: 30. Okt 2006
Ort: Neuenkirchen
194 Beiträge
 
Delphi 11 Alexandria
 
#1

DBGrid verliert dsInsert-Status bei Fokus-Wechsel auf DBMemo

  Alt 26. Jan 2007, 00:00
Datenbank: MySQL • Zugriff über: Zeos
Wie der Betreff schon sagt: In einem DBGrid kann ich einen neuen Datensatz anlegen, sodaß sich das DataSet.State in "dsInsert" befindet. Sobald ich aber zB um ein BLOB-Feld zu bearbeiten mit der Maus ein DBMemo anklicke, wird DataSet.State wieder auf dsBrowse gesetzt bzw. DataSet.Cancel intern aufgerufen.

Dieses Problem besteht nur, sofern ich nicht vorher bereits in einem anderen Feld Daten eingegeben habe, also wenn der neue Datensatz noch auf "Modified = False" steht. Daher dachte ich: setze ich doch einfach
MeinDataSet.Modified := True; und zwar sobald ich mit der Maus ein Blob-Feld angeklickt habe. Das geht aber leider nicht, da Modified eine ReadOnly-Eigenschaft ist. Eine andere Idee war (obschon häßlich), beim Start des dsInsert-Modus alle Blob-Felder mit einem leeren String zu füllen, damit dadurch Modified auf true gesetzt wird. Aber selbst das funktioniert nicht, da Modified wohl nur bei Tastaturanschlägen oder Mausaktionen auf True gesetzt wird.

Gibt es also einen Weg bei einem Fokus-Wechsel von DBGrid auf andere Komponenten den dsInsert-Status zu behalten?
Ansgar Becker
  Mit Zitat antworten Zitat