MaxLength für TDBEdit / TDBMemo

jaydg

Grünschnabel
Hallo,

ich habe leider feststellen müssen, daß TDBEdit / TDBMemo nicht wie wünschenswert nur so viele Zeichen als Eingabe akzeptieren wie es das verknüpfte DataField aufnehmen kann.

Die gewünschte Eigenschaft heißt MaxLength ist ist standardmäßig auf 0, d.h. nixhts wird überprüft. Das war nicht immer so: http://www.delphi32.com/info_facts/faq/faq_393.asp

Eigentlich reichlich dämlich, dieses Feature zu entfernen. Halte ich für wichtig, da sonst bein speichern des Datensatzes der überschüssige Teil einfach wortlos verworfen wird..

Nun die Frage:

Als Lösung habe ich mir überlegt:

Code:
DBEditBlah.MaxLength:= DBEditBlah.Datafield.Size;
und das habe ich in die OnCreate Ereignisprozedur geworfen. Nur da gibt es die Felder noch nicht.

Wo soll ich das denn (für alle in einer Schleife) einmalig aufrufen?

-jaydg
 
Da die Felder ja von der Abrage/Tabelle abhängen und diese u.U. von einem SQL-Befehl, wäre m.E. OnAfterOpen ein guter Zeitpunkt.

Was denkst Du?

vop
 
Eigentlich eine gute Idee, aber leider habe ich die Tabelle in einem Datenmodul, da ich sie in mehreren Forms benutze.
Das hätte zur Folge, daß ich dann mit Konstrukten wie
Code:
 if Assigned(frmMeinForm) then
prüfen müßte ob das Form existiert. Das finde ich immer unpraktisch, weis sich Änderungen dann über mehrere Units auswirken können und so alles enorm unübersichtlich wird..

Kann man eigentlich ermitteln, welche DataSources mit einem DataSet verknüpft sind und dann welche Bedienelemente mit dieser DataSource? So könnte man wunderbar alle verknüpften Felder modifizieren...
 

Neue Beiträge

Zurück