Freigeben über


Verwenden der InputMask-Eigenschaft

Die InputMask-Eigenschaft legt die Eigenschaften jedes in das Textfeld eingegebenen Zeichens fest. So könnten Sie beispielsweise die InputMask-Eigenschaft auf 999.999,99 einstellen, um die Benutzereingabe auf numerische Werte unter 1.000.000 mit zwei Dezimalstellen zu begrenzen. Der Punkt und das Komma würden im Textfeld angezeigt, bevor der Benutzer irgendwelche Werte eingibt. Wenn der Benutzer eine Zeichentaste drückt, würde das Zeichen im Textfeld nicht angezeigt.

Wenn Benutzer in ein logisches Feld "J" bzw. "N", aber nicht "W" bzw. "F", eingeben sollen, stellen Sie die InputMask-Eigenschaft auf Y ein.

Akzeptieren von Benutzerkennwörtern in einem Textfeld

Häufig soll ein Benutzer einer Anwendung geheime Informationen, wie z. B. ein Kennwort, liefern. Sie können ein Textfeld verwenden, um die gewünschten Informationen zu erhalten, ohne diese auf dem Bildschirm sichtbar werden zu lassen.

So akzeptieren Sie Benutzereingaben, ohne den tatsächlichen Wert anzuzeigen

  • Stellen Sie die PasswordChar-Eigenschaft des Textfeldes auf "*" oder irgendein anderes generisches Zeichen ein.

Wenn Sie die PasswordChar-Eigenschaft auf einen beliebigen anderen Wert einstellen (ausgenommen eine leere Zeichenfolge), enthalten die Eigenschaften Value und Text des Textfeldes den Wert, den der Benutzer tatsächlich eingegeben hat, während im Textfeld für jede vom Benutzer gedrückte Taste nur ein generisches Zeichen angezeigt wird.

Eingeben von Datumswerten in einem Textfeld

Textfelder besitzen mehrere Eigenschaften, die dem Benutzer das Eingeben von Datumswerten erleichtern.

Eigenschaft Beschreibung
Century Legt fest, ob die beiden Stellen mit der Jahresangabe angezeigt werden.
DateFormat Formatiert das Datum im Textfeld. Fünfzehn vordefinierte Formate stehen zur Verfügung, z. B. Deutsch oder Japanisch.
StrictDateEntry Legt StrictDateEntry auf 0 - Loose fest. Dadurch hat der Benutzer bei der Eingabe von Datumswerten größere Freiheiten und ist nicht an das Standardformat 99/99/99 gebunden.

Allgemeine Textfeldeigenschaften

Die folgenden Textfeldeigenschaften werden normalerweise zur Entwurfszeit eingestellt.

Eigenschaft Beschreibung
Alignment Bestimmt, ob der Inhalt des Textfeldes linksbündig, rechtsbündig, zentriert oder automatisch ausgerichtet wird. Die automatische Ausrichtung ist vom Datentyp abhängig. Zahlen werden z. B. rechtsbündig, Zeichen werden linksbündig ausgerichtet.
ControlSource Gibt das Tabellenfeld oder die Variable an, das bzw. die im Textfeld angezeigt wird.
InputMask Gibt die Regeln bei der Dateneingabe an. Die Überprüfung erfolgt für jedes einzelne Zeichen. Weitere Informationen zur InputMask-Eigenschaft finden Sie in der Hilfe.
SelectOnEntry Legt fest, ob der Inhalt des Textfeldes automatisch markiert wird, wenn das Textfeld den Fokus erhält.
TabStop Bestimmt, ob der Benutzer mit TAB zum Steuerelement wechseln kann. Wenn die TabStop-Eigenschaft auf Falsch (.F.) eingestellt ist, kann der Benutzer das Textfeld trotzdem noch durch Anklicken wählen.

Verwenden von Bearbeitungsfeldern

Sie können es Benutzern ermöglichen, Text aus Feldern mit langen Zeichenfolgen oder Memofeldern in Bearbeitungsfeldern zu bearbeiten. Bearbeitungsfelder ermöglichen automatischen Zeilenumbruch und das Bewegen durch den Text mit Hilfe der PFEILTASTEN, BILD-AUF- und BILD-AB-TASTEN sowie der Bildlaufleisten.

So zeigen Sie Beispiele für die Verwendung von Bearbeitungsfeldern an

  1. Führen Sie Solution.app im Visual FoxPro-Verzeichnis …\Samples\Microsoft Visual FoxPro 7\Solution aus.
  2. Klicken Sie in der Strukturansicht auf Steuerelemente, und klicken Sie dann auf Bearbeitungsfelder.

Benutzern die Möglichkeit geben, ein Memofeld in einem Bearbeitungsfeld zu bearbeiten

Wenn Sie es einem Benutzer ermöglichen möchten, ein Memofeld in einem Bearbeitungsfeld zu bearbeiten, müssen Sie lediglich die ControlSource-Eigenschaft des Bearbeitungsfeldes auf das Memofeld einstellen. Wenn zum Beispiel die Tabelle log das Memofeld comments enthält, können Sie die ControlSource-Eigenschaft eines Bearbeitungsfeldes auf log.comments einstellen, damit ein Benutzer das Memofeld im Bearbeitungsfeld bearbeiten kann.

Benutzern die Möglichkeit geben, eine Textdatei in einem Bearbeitungsfeld zu bearbeiten

Sie können es einem Benutzer auch ermöglichen, eine Textdatei in einem Bearbeitungsfeld zu bearbeiten. Ein Beispiel hierfür ist das folgende Formular.

Beispielformular zum Bearbeiten einer Textdatei in einem Bearbeitungsfeld

Eine Schaltfläche OK im Formular schließt dieses mit dem folgenden Befehl im Click-Ereigniscode:

RELEASE THISFORM

Die beiden anderen Schaltflächen in diesem Beispiel, cmdOpenFile und cmdSave, ermöglichen es einem Benutzer, eine Textdatei zu öffnen und die Datei nach der Bearbeitung zu speichern.

Code für das Click-Ereignis von "cmdOpenFile"

Code Kommentar
CREATE CURSOR textfile ;
  (filename c(35), mem m)
APPEND BLANK
Erstellen Sie einen Cursor mit einem Zeichenfeld für den Namen der Textdatei und einem Memofeld für den Inhalt der Textdatei.

Fügen Sie einen leeren Datensatz zum Cursor hinzu.
REPLACE textfile.FileName WITH ;
  GETFILE("TXT")
Verwenden Sie die GETFILE( )-Funktion, um den Namen der zu öffnenden Datei zu erhalten. Speichern Sie den Namen im Feld FileName des Cursors.
IF EMPTY(textfile.FileName)
   RETURN
ENDIF
Wenn der Benutzer im Dialogfeld Datei lesen den Befehl Abbrechen wählt, ist das Feld FileName leer, und es wird keine Datei geöffnet.
APPEND MEMO mem FROM ;
  (textfile.FileName) OVERWRITE
Füllen Sie das Memofeld mit dem in der Datei enthaltenen Text.
THISFORM.edtText.ControlSource = ;
  "textfile.mem"
THISFORM.Refresh
Setzen Sie die ControlSource-Eigenschaft des Bearbeitungsfeldes auf das Formular.
THISFORM.cmdSave.Enabled = .T.
Klicken Sie auf die Schaltfläche Speichern.

Wenn ein Benutzer die Datei geöffnet und bearbeitet hat, ermöglicht es ihm die Schaltfläche Speichern, Änderungen wieder zurück in die Datei zu schreiben.

Code für das Click-Ereignis von "cmdSave"

Code Kommentar
COPY MEMO textfile.mem TO ;
  (textfile.filename)
Überschreibt den alten Wert in der Datei mit dem neuen Text des Bearbeitungsfeldes.

Bearbeiten von markiertem Text in einem Bearbeitungsfeld

Bearbeitungsfelder und Textfelder besitzen drei Eigenschaften, die Ihnen das Arbeiten mit markiertem Text ermöglichen: SelLength, SelStart und SelText.

Mit Hilfe der Eigenschaften SelStart und SelLength können Sie Text programmgesteuert markieren. Beispielsweise markieren die folgenden Codezeilen das erste Wort in einem Bearbeitungsfeld.

Form1.edtText.SelStart = 0 
Form1.edtText.SelLength = AT(" ", Form1.edtText.Text) - 1

Tipp   Wenn Sie die SelStart-Eigenschaft ändern, wird im Bearbeitungsfenster zu der Stelle geblättert, an der die neue Markierung beginnt. Wenn Sie die SelStart-Eigenschaft mit einer Schleife ändern, z. B. wenn Sie nach Text suchen, können Sie Ihren Code beschleunigen, indem Sie vor der Verarbeitung THISFORM.LockScreen = .T. und nach der Verarbeitung THISFORM.LockScreen = .F. einfügen.

Mit der SelText-Eigenschaft können Sie auf markierten Text in einem Bearbeitungs- oder Textfeld zugreifen. Die folgende Codezeile formatiert z. B. den markierten Text ganz in Großbuchstaben.

Form1.edtText.SelText = UPPER(Form1.edtText.SelText)

Allgemeine Bearbeitungsfeldeigenschaften

Die folgenden Bearbeitungsfeldeigenschaften werden normalerweise zur Entwurfszeit eingestellt.

Eigenschaft Beschreibung
AllowTabs Legt fest, ob der Benutzer in das Bearbeitungsfeld Tabstops einfügen kann, statt zum nächsten Steuerelement zu gehen. Wenn Sie die Eingabe von Tabstops zulassen, muss gewährleistet sein, dass der Benutzer durch Drücken von STRG+TAB zum nächsten Steuerelement wechseln kann.
HideSelection Bestimmt, ob der im Bearbeitungsfeld markierte Text sichtbar markiert ist, wenn das Bearbeitungsfeld nicht den Fokus besitzt.
ReadOnly Legt fest, ob der Benutzer den im Bearbeitungsfeld enthaltenen Text ändern darf.
ScrollBars Bestimmt, ob vertikale Bildlaufleisten angezeigt werden.

Verwenden von Kombinationsfeldern

Das Kombinationsfeld-Steuerelement bietet die Funktionalität eines Listenfeldes und eines Textfeldes. Es gibt zwei Arten von Kombinationsfeldern: Dropdown-Kombinationsfelder und Dropdownlisten. Durch Ändern der Style-Eigenschaft des Steuerelements legen Sie fest, welche Kombinationsfeldart Sie erstellen möchten. Dropdown-Listenfelder werden im Abschnitt Anwendung von Listenfeldern und Dropdown-Listenfeldern besprochen.

Ein Benutzer kann entweder auf die Schaltfläche eines Dropdown-Kombinationsfeldes klicken, um eine Liste von Wahlmöglichkeiten anzuzeigen, oder er kann einen neuen Eintrag in das Feld neben der Schaltfläche direkt eingeben. Die standardmäßige Style-Eigenschaft von einem Kombinationsfeld ist 0 - Dropdown Combo.

Hinzufügen von Benutzereinträgen zu Dropdown-Kombinationsfeldern

Wenn zu einem Kombinationsfeld ein neuer Benutzerwert hinzugefügt werden soll, können Sie die folgende Codezeile zu der Methode hinzufügen, die mit dem Valid-Ereignis des Kombinationsfeldes verbunden ist:

THIS.AddItem(THIS.Text)

Vor dem Hinzufügen eines neuen Elements sollte sinnvollerweise geprüft werden, ob der Wert nicht bereits im Kombinationsfeld enthalten ist:

lItemExists = .F. && assume the value isn't in the list.
FOR i = 1 to THIS.ListCount
   IF THIS.List(i) = THIS.Text
      lItemExists = .T.
      EXIT
   ENDIF
ENDFOR

IF !lItemExists
   THIS.AddItem(THIS.Text)
ENDIF

Allgemeine Kombinationsfeldeigenschaften

Die folgenden Kombinationsfeldeigenschaften werden normalerweise zur Entwurfszeit eingestellt.

Eigenschaft Beschreibung
ControlSource Legt das Tabellenfeld fest, in dem der Wert, den der Benutzer wählt oder eingibt, gespeichert wird.
DisplayCount Legt die maximale Anzahl der in der Liste angezeigten Elemente fest.
InputMask Bei Kombinationsfeldern wird mit dieser Eigenschaft angegeben, welche Art von Werten eingegeben werden können.
IncrementalSearch Gibt an, ob das Steuerelement versucht, in der Liste einen passenden Eintrag zu finden, während der Benutzer Buchstaben eingibt.
RowSource Bestimmt die Datenquelle für die Elemente im Kombinationsfeld.
RowSourceType Bestimmt die Art der Datenquelle für das Kombinationsfeld. Die Einstellungen der RowSourceType-Eigenschaft sind mit den Einstellungen des Listenfeldes identisch.
Style Legt fest, ob es sich bei dem Kombinationsfeld um ein Dropdown Combo- oder um ein Dropdown List-Steuerelement handelt.

Siehe auch

Akzeptieren nicht vorherbestimmbarer Eingaben | Akzeptieren von numerischen Eingaben innerhalb eines bestimmten Bereichs | Verwenden von Steuerelementen | Ermöglichen von bestimmten Aktionen | Steuerelemente und Objekte | Click-Ereignis