Einzelnen Beitrag anzeigen

mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: textbox maske wie in vb ?

  Alt 10. Okt 2006, 13:40
Eigentlich sollte es so gehen:

Zitat von Delphi-Hilfe:
TEditMask Typ

Repräsentiert die Maske, die Benutzereingaben überprüft und formatiert.

Unit
MaskUtils

Syntax


(Delphi) type TEditMask = AnsiString;


Beschreibung
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. Das dritte Feld enthält das Zeichen, welches für nicht eingegebene Zeichen in der Maske steht.

Die folgenden Zeichen können im ersten Feld der Maske verwendet werden:
Zeichen Bedeutung in der Maske
!
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.

L
Das Zeichen L verlangt an dieser Position einen Buchstaben (in Deutschland A-Z, a-z).

l
Das Zeichen l lässt an dieser Position nur einen Buchstaben zu, erfordert ihn aber nicht.

A
Das Zeichen A verlangt an dieser Position ein alphanumerisches Zeichen (in Deutschland A-Z, a-z, 0-9).

a
Das Zeichen a lässt an dieser Position ein alphanumerisches Zeichen, erfordert es aber nicht.

C
Das Zeichen C verlangt an dieser Position ein beliebiges Zeichen.

c
Das Zeichen c lässt an dieser Position ein beliebiges Zeichen zu, erfordert es aber nicht.

0
Das Zeichen 0 verlangt an dieser Position ein numerisches Zeichen.

9
Das 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. Die Maske für eine Telefonnummer mit Vorwahl könnte beispielsweise so aussehen:

(000)_000-0000;0;*

Die 0 im zweiten Feld legt fest, dass die Eigenschaft Text des Eingabefeldes aus den zehn eingegebenen Ziffern bestehen soll, nicht aus den 14 Zeichen, die im Eingabefeld erscheinen.

Eine 0 im zweiten Feld gibt an, dass Literale ignoriert werden, alle anderen Zeichen geben an, dass sie einbezogen werden. Das Zeichen, das dies festlegt, kann im Eigenschaftseditor oder programmseitig in der typisierten Konstante MaskNoSave geändert werden.

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.
Was gibt er jetzt aus?
Markus Kinzler
  Mit Zitat antworten Zitat