<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Editmask in Verbindung mit TDBGrid]]></title><description><![CDATA[<p>Hallo,</p>
<p>meine Applikation hat im Hintergrund eine Access Datenbank. Für eine einfache Tabelle zeige ich die Daten jetzt in einem TDBGrid an. Soweit funktioniert alles gut (Insert, Update, Delete, ...)<br />
Bei den Feldern ist jetzt ein Datumsfeld dabei, und ich habe ein DataSource, mit DataSet (das Dataset ist die Tabelle) hinterlegt. In Access sowie im Programm habe ich natülich angegeben, das es eine DateTime Komponente ist. Da ich den Benutzer unterstützen will, habe ich auch eine Editmask hinterlegt (Datum mit 4 stelligem Jahr)<br />
Bis dahin funktioniert alles ganz gut. Allerdings ist es jetzt so, dass wenn z.b. die Editmask geleert wird, bleibt ja die leere Editmask übrig (z.B. <strong>.</strong>.__ für TT.MM.JJJJ)<br />
Verlässt der Benutzer jetzt diese Zelle im Grid, kommt eine EConvertError Exception, und zwar VOR allen von Borland gestellten Möglichkeiten hier einzugreifen (z.B. bei BeforePost, aber auch vor OnColExit, ...)<br />
Da dies auserhalb einer Seriellen Funktion von mir geschieht, kann man die Exception ja nur auf der Applikationsebene abfangen, was ich sehr ungeschickt finde?<br />
Jetzt habe ich zwar den OnKeyDown Handler vom TDBGrid entsprechend erweitert, dass ich zumindest vorher merke wenn die Zelle gewechselt werden soll, allerdings ist mein Problem, dass das TField Objekt den vom Benutzer eingegeben Wert noch gar nicht kennt.<br />
D.h. auch wenn der Benutzer z.b. schon fleißig editiert hat, steht in jeglichen Eigenschaften des TField Objekts noch der alte Wert. Irgendwo müsste natürlich der aktuelle Wert stehen, ich konnte Ihn jedoch nirgends finden.<br />
Während des editierens sagt mir die Eigenschaft ActiveControl allerdings, dass das TDBGrid aktiv ist, also müsste es evtl. eine private Eigenschaft des TDBGrids sein. (warum zum Teufel private...)<br />
Fakt ist, damit ich jetzt nachbilden könnte, was wohl in dem editierten Gridfeld steht, müsste ich ja ein exakte Nachprogrammierung des Verhaltens des editierbaren Zellobjekts im TDBGrid machen, und das wäre doch sehr ärgerlich <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f622.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--crying_face"
      title=";("
      alt="😢"
    /><br />
Zudem kann ich mit OnKeyPress den Benutzer auch nicht daran hindern, irgendwo anders auf dem Formular hinzuklicken und damit den Fokus auf ein neues Objekt zu setzten, was dann auch die Exception wirft, wenn die Zelle nicht mit einem korrekten Datum befüllt wurde.</p>
<p>Falls jemand eine Idee hat, wie dies in/mit TDBGrid möglich ist, wäre ich für eine Antwort dankbar. Gleich vorweg noch dazu: Mir bleibt aktuell nichts anderes übrig, als dieses TDBGrid einzusetzten.</p>
<p>Zusatz: Soweit ich gesehen habe, trifft dies auch für DBEdit Felder zu, wobei ich bei diesen nicht geprüft habe, ob man den aktuellen Wert im Editierzustand korrekt herauslesen kann. (also falls man keine Prüfung macht, und kein gültiges Datum ins DBEdit feld schreibt, welches auf einem DateTime Datenbankspalte hängt, dann gibts hier auch eine EConvertError)</p>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/187847/editmask-in-verbindung-mit-tdbgrid</link><generator>RSS for Node</generator><lastBuildDate>Sun, 16 Aug 2026 18:47:12 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/187847.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 24 Jul 2007 16:52:19 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Editmask in Verbindung mit TDBGrid on Tue, 24 Jul 2007 16:52:19 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>meine Applikation hat im Hintergrund eine Access Datenbank. Für eine einfache Tabelle zeige ich die Daten jetzt in einem TDBGrid an. Soweit funktioniert alles gut (Insert, Update, Delete, ...)<br />
Bei den Feldern ist jetzt ein Datumsfeld dabei, und ich habe ein DataSource, mit DataSet (das Dataset ist die Tabelle) hinterlegt. In Access sowie im Programm habe ich natülich angegeben, das es eine DateTime Komponente ist. Da ich den Benutzer unterstützen will, habe ich auch eine Editmask hinterlegt (Datum mit 4 stelligem Jahr)<br />
Bis dahin funktioniert alles ganz gut. Allerdings ist es jetzt so, dass wenn z.b. die Editmask geleert wird, bleibt ja die leere Editmask übrig (z.B. <strong>.</strong>.__ für TT.MM.JJJJ)<br />
Verlässt der Benutzer jetzt diese Zelle im Grid, kommt eine EConvertError Exception, und zwar VOR allen von Borland gestellten Möglichkeiten hier einzugreifen (z.B. bei BeforePost, aber auch vor OnColExit, ...)<br />
Da dies auserhalb einer Seriellen Funktion von mir geschieht, kann man die Exception ja nur auf der Applikationsebene abfangen, was ich sehr ungeschickt finde?<br />
Jetzt habe ich zwar den OnKeyDown Handler vom TDBGrid entsprechend erweitert, dass ich zumindest vorher merke wenn die Zelle gewechselt werden soll, allerdings ist mein Problem, dass das TField Objekt den vom Benutzer eingegeben Wert noch gar nicht kennt.<br />
D.h. auch wenn der Benutzer z.b. schon fleißig editiert hat, steht in jeglichen Eigenschaften des TField Objekts noch der alte Wert. Irgendwo müsste natürlich der aktuelle Wert stehen, ich konnte Ihn jedoch nirgends finden.<br />
Während des editierens sagt mir die Eigenschaft ActiveControl allerdings, dass das TDBGrid aktiv ist, also müsste es evtl. eine private Eigenschaft des TDBGrids sein. (warum zum Teufel private...)<br />
Fakt ist, damit ich jetzt nachbilden könnte, was wohl in dem editierten Gridfeld steht, müsste ich ja ein exakte Nachprogrammierung des Verhaltens des editierbaren Zellobjekts im TDBGrid machen, und das wäre doch sehr ärgerlich <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f622.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--crying_face"
      title=";("
      alt="😢"
    /><br />
Zudem kann ich mit OnKeyPress den Benutzer auch nicht daran hindern, irgendwo anders auf dem Formular hinzuklicken und damit den Fokus auf ein neues Objekt zu setzten, was dann auch die Exception wirft, wenn die Zelle nicht mit einem korrekten Datum befüllt wurde.</p>
<p>Falls jemand eine Idee hat, wie dies in/mit TDBGrid möglich ist, wäre ich für eine Antwort dankbar. Gleich vorweg noch dazu: Mir bleibt aktuell nichts anderes übrig, als dieses TDBGrid einzusetzten.</p>
<p>Zusatz: Soweit ich gesehen habe, trifft dies auch für DBEdit Felder zu, wobei ich bei diesen nicht geprüft habe, ob man den aktuellen Wert im Editierzustand korrekt herauslesen kann. (also falls man keine Prüfung macht, und kein gültiges Datum ins DBEdit feld schreibt, welches auf einem DateTime Datenbankspalte hängt, dann gibts hier auch eine EConvertError)</p>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1331691</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1331691</guid><dc:creator><![CDATA[Donneker]]></dc:creator><pubDate>Tue, 24 Jul 2007 16:52:19 GMT</pubDate></item></channel></rss>