@Alle Freunde der
DB !
Dieser Thread
komplexe Berechnungen von abhängigen Datenbankfeldern
hat mich dazu motiviert diesen Satz von Editkomponenten als Open Source zur Verfügung zu stellen.
@Jelly: Credits fürs Testen und die sachdienlichen Hinweise.
Wichtigste Eigenschaft von
TEditString, TEditInteger, TEditFloat, TEditCurr, TEditProz und TEditDate
ist die property
Value, die dem Datentyp entspricht.
Damit können die Komponenten quasi als Variable verwendet werden.
Das extrem mühsame und unübersichtliche herumschaufeln der Werte,
(aus Variablen in die Editfelder samt Umwandlung und Formatierung, wieder zurück in die Variablen samt Umwandlung)
entfällt, das erledigen die Komponenten.
Was die Editfelder können, zeigt die Kurzanleitung:
Delphi-Quellcode:
{ Unit MyEditPrim erweitert das etwas dümmliche TLabeledEdit um Eigenschaften und Ereignisse,
die in der Praxis des Programmierens IMHO notwendig sind.
TEditPrim ist Vorfahre für weitere, spezialisiertere EditKomponenten (siehe Unit MyEdit)
Erweiterungen:
property Alignment Ausrichtung des Textes taLeftJustify, taCenter, taRightJustify
property RedValues Negative Werte werden automatisch rot dargestellt
property ReturnIsTab Eingabetaste ist wie Tabtaste
property OnChange Änderung des Verhaltens. Wird nur durch Enter, Tab oder Verlassen des
Edits ausgelöst, nicht mehr bei jeder Zeichneingabe,
und auch dann nur, falls der Wert geändert wurde.
Validierung der Eingabe ist hier möglich.
property OnIniData Wird aufgerufen um Variablen mit Value belegen zu können.
property OnDrwData Wird vor dem Zeichnen aufgerufen und erlaubt Änderungen von Farbe und Font
Taste ESC stellt den ursprünglichen Wert des Feldes wieder her.
}
{ Unit MyEdit leitet vom erweiterten TEditPrim, die spezialisierten Editfelder
TEditString, TEditInteger, TEditFloat, TEditCurr, TEditProz und TEditDate ab.
Basisverhalten siehe: Unit MyEditPrim.
Jedes diese Editfelder hat die zusätzliche Eigenschaft 'Value',
die dem DatenTyp entspricht.
Nachkommastellen bei den entsprechend Datentypen sind einstellbar.
Vorgabe bei Float und Currency: 2, bei Prozent: 0
Zuweisungen zur Eigenschaft Value lösen das Ereignis OnChange NICHT aus.
Zuweisungen zur Eigenschaft Text lösen das Ereignis OnChange nach wie vor aus.
Zusätzliche Eigenschaft NullValues - wie Excel Nullwerte anzeigen, Vorgabe false.
Zusätzliches Ereignis OnInitData ermöglicht das initialisieren von Variablen.
Validierung kann im Ereignis OnChange durchgeführt werden.
TEditPrim wurde in separate Unit extrahiert, um die Übersichtlichkeit zu erhöhen.
Die Erweiterung um weitere Datentypen ist in Unit MyEdit sehr einfach.
}
Die Komponenten sind mit BDS2006 und D7 getestet, das
Package ist mit D7 kompiliert.
Für weitere Anregungen und evtl. Fehlermeldungen bitte eine PN schicken.
Freundlich Grüsse vom 'Ferber'
Edit: LabelPosition korrigiert. Drüberkopieren und
Package neu kompilieren.