![]() |
Zeichenanzahl bei Eingabe in DBGrid begrenzen
Wie kann ich die Zeichenanzahl bei der Eingabe von Daten in einem DBGrid begrenzen?
Das entsprechende Datenfeld ist ein String mit maximal 12 Zeichen. DBGrid.Columns[x].maxSize ist auf 12 gesetzt, MinSize=0. Nun kann ich aber beliebig viele Zeichen eingeben. Alle nach dem 12. werden zwar beim Verlassen des Eingabefeldes abgeschnitten aber diese sollten eigentlich erst gar nicht eingegeben werden können. Gruß BlackGuest |
Re: Zeichenanzahl bei Eingabe in DBGrid begrenzen
Als Stichwort fällt mir da nur "InplaceEditor" ein. Zuhause hab' ich Code, wie man an den rankommt (leider nicht hier bei der Arbeit).
Aber vielleicht reicht das ja schon um zu Suchen. |
Re: Zeichenanzahl bei Eingabe in DBGrid begrenzen
Danke für die schnelle Antwort.
Viel habe ich allerdings nicht dazu gefunden. Wäre nett, wenn Du mir dabei etwas weiterhelfen könntest, wenn Du den Code vor dir hast. Gruß BlackGuest |
Re: Zeichenanzahl bei Eingabe in DBGrid begrenzen
Auf die schnelle hab' ich hier folgendes gefunden:
Delphi-Quellcode:
..oder halt statt StringGrid ein DBGrid. Wie weit das beim DBGrid funktioniert weis ich nicht, aber damit bekommt man auf die schnelle Zugriff auf den Editor und kann die Werte manipulieren.
type
THackedStringGrid = class(TStringGrid); // dann im onGetEditText Ereignis THackedStringGrid(StringGrid).InplaceEditor.xxx Selber ausprobieren kann ich es dann aber erst heute Abend (hier ist kein Delphi, nur Internet ;) ), aber evtl. kommst Du schon so weiter. €: Ok, also Zugang zum InplaceDitor gibt es so auch beim DBGrid. Nur kein passendes fertiges Ereignis, wo man am besten eingreift. OnKeyPress etc. hängt ein Zeichen hinterher. Da müsste man ein Ereignis abfangen, was jetzt mehr ist, was ich auf die schnelle korrekt kann. Damit hatte ich es eben schnell im onKeyPress getestet:
Delphi-Quellcode:
if Assigned(THackedDBGrid(DBGrid1).InplaceEditor) then
Edit1.text := THackedDBGrid(DBGrid1).InplaceEditor.Text; |
Re: Zeichenanzahl bei Eingabe in DBGrid begrenzen
Zitat:
das und Ähnliches habe ich bisher so gelöst, dass ich dem Grid-Kasten ein eigenes Editfeld vorlagere (so, dass der User das überhaupt nicht sieht), in dem ich formatieren kann wie ich will, z.B. wissenschaftliche Zahlenformate, Telefonnummern usw. Gruss Reinhard |
Re: Zeichenanzahl bei Eingabe in DBGrid begrenzen
Danke für eure Antworten.
Bin leider gerade mit etwas anderem eingespannt, so dass ich an dem Projekt erst einmal nicht weiterarbeiten kann. @Reinhard Die Idee find ich sehr gut. Werde das dann wohl auch so lösen. Scheint mir wirklich die einfachste und komfortabelste Lösung zu sein. Gruß BlackGuest |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:35 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-2025 by Thomas Breitkreuz