TnetDBEdit_Prop_EditMask

Komponenten
Syntax

Eigenschaft EditMask: TEditMask

Beschreibung

Mit EditMask werden die Zeichen festgelegt, die als Benutzereingabe zulässig sind. Ein unzulässiges Zeichen wird als Eingabe abgelehnt. Die Überprüfung der Eingabe erfolgt dabei Zeichen für Zeichen. Mit der Ereignisbehandlungsroutine OnValidate kann dagegen die gesamte Eingabe vor dem Eintragen geprüft werden.

Wenn EditMask auf einen leeren String gesetzt wird, wird die Maske entfernt.

TEditMask ist ein String, der aus drei durch Semikolon getrennten Feldern besteht. Das erste Feld enthält die eigentliche Maske. Das zweite Feld ist das Zeichen, das festlegt, ob die literalen Zeichen der Maske als Teil der Daten gespeichert werden. Die folgenden Zeichen können im ersten Feld der Maske verwendet werden:

Die folgenden Zeichen können im ersten Feld der Maske verwendet werden:

! Wird in der Maske das Zeichen ! verwendet, werden optionale Zeichen im Text als führende Leerzeichen dargestellt. Fehlt das Zeichen !, werden optionale Zeichen im Text als abschließende Leerzeichen dargestellt.
>Wird in der Maske das Zeichen > verwendet, sind alle folgenden Zeichen bis zum Ende der Maske oder bis zum Zeichen < Großbuchstaben.
<Wird in der Maske das Zeichen < verwendet, sind alle folgenden Zeichen bis zum Ende der Maske oder bis zum Zeichen > Kleinbuchstaben.
<>Werden in der Maske diese beiden Zeichen zusammen verwendet, wird keine Prüfung der Groß-/Kleinschreibung durchgeführt. Die Groß-/Kleinschreibung wird so übernommen, wie sie der Benutzer eingibt.
\Das Zeichen, das auf \ folgt, soll als literales Zeichen interpretiert werden. Verwenden Sie dieses Zeichen, wenn eines der Maskenzeichen als Literal in die Daten übernommen werden soll.
LDas Zeichen L verlangt an dieser Position einen Buchstaben (in Deutschland A-Z, a-z).
lDas Zeichen l lässt an dieser Position nur einen Buchstaben zu, erfordert ihn aber nicht.
ADas Zeichen A verlangt an dieser Position ein alphanumerisches Zeichen (in Deutschland A-Z, a-z, 0-9).
aDas Zeichen a lässt an dieser Position ein alphanumerisches Zeichen, erfordert es aber nicht.
CDas Zeichen C verlangt an dieser Position ein beliebiges Zeichen.
cDas Zeichen c lässt an dieser Position ein beliebiges Zeichen zu, erfordert es aber nicht.
0Das Zeichen 0 verlangt an dieser Position ein numerisches Zeichen.
9Das Zeichen 9 lässt an dieser Position ein numerisches Zeichen zu, erfordert es aber nicht.
#Das Zeichen # lässt an dieser Position ein numerisches Zeichen oder ein Plus- bzw. Minuszeichen zu, erfordert es aber nicht.
:Das Zeichen : dient dazu, in Zeitangaben Stunden, Minuten und Sekunden voneinander zu trennen. Wenn die Ländereinstellungen in der Systemsteuerung Ihres Rechners ein anderes Trennzeichen vorsehen, wird dieses an Stelle von : verwendet.
/Das Zeichen / dient dazu, in Datumsangaben Jahr, Monat und Tag voneinander zu trennen. Wenn die Ländereinstellungen in der Systemsteuerung Ihres Rechners ein anderes Trennzeichen vorsehen, wird dieses an Stelle von / verwendet.
;Das Zeichen ; trennt die drei Felder der Maske voneinander.
_Das Zeichen _ fügt automatisch Leerzeichen in den Text ein. Wenn der Benutzer Zeichen in das Feld eingibt, überspringt der Cursor das Zeichen _.

Jedes Zeichen, das nicht in der obigen Tabelle enthalten ist, kann im ersten Teil der Maske als Literal angegeben werden. Literale Zeichen müssen exakt mit den Zeichen im Eingabefeld übereinstimmen. Sie werden automatisch eingefügt und der Cursor überspringt diese Zeichen beim Bearbeiten. Auch die Maskenzeichen selbst können als Literale verwendet werden, wenn ihnen ein umgekehrter Schrägstrich (\) vorangestellt ist.

Das zweite Feld der Maske enthält ein einzelnes Zeichen, das angibt, ob die literalen Zeichen der Maske im Text des Eingabefelds enthalten sein sollen.

Das dritte Feld der Maske ist das Zeichen, das im Eingabefeld für Leerzeichen eingesetzt wird (Zeichen, die nicht eingegeben wurden). Per Vorgabe ist dies dasselbe Zeichen, das für literale Leerzeichen steht. Die beiden Zeichen werden im Eingabefeld identisch dargestellt. Wenn ein Benutzer jedoch den Text in einem maskierten Eingabefeld bearbeitet, markiert der Cursor alle leeren Zeichen, überspringt aber alle Leerzeichen.

Hinweis: Wenn Sie mit Multibyte-Zeichensätzen arbeiten, steht jedes Maskenzeichen für ein Byte. Wenn Sie also die Maskenzeichen L, l, A, a, C oder c auf Multibyte-Zeichen anwenden, müssen Sie die Maskenzeichen duplizieren. LL steht beispielsweise für zwei numerische Einzelbyte-Zeichen oder für ein Doppelbyte-Zeichen. Als literale Zeichen werden nur Einzelbyte-Zeichen unterstützt.

Beispiel

procedure OnShow(Sender: Integer); begin netEdit.EditMask := '(999)_000-0000;0;*'; // Maske wird definiert, noch nicht eingefüllte Zeichen werden als * dargestellt end;

procedure ButtonTest_OnClick(Sender: Integer); begin Message_dlg(netEdit.Text); // Wenn der User eine Nummer eingegeben hat wird diese Nummer angezeigt. Laut der obigen Maskendefinition wird immer eine Nummer mit 7 bis 10 Ziffern ausgegeben. end;