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
- Führen Sie Solution.app im Visual FoxPro-Verzeichnis …\Samples\Microsoft Visual FoxPro 7\Solution aus.
- 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 |
---|---|
|
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. |
|
Verwenden Sie die GETFILE( )-Funktion, um den Namen der zu öffnenden Datei zu erhalten. Speichern Sie den Namen im Feld FileName des Cursors. |
|
Wenn der Benutzer im Dialogfeld Datei lesen den Befehl Abbrechen wählt, ist das Feld FileName leer, und es wird keine Datei geöffnet. |
|
Füllen Sie das Memofeld mit dem in der Datei enthaltenen Text. |
|
Setzen Sie die ControlSource-Eigenschaft des Bearbeitungsfeldes auf das Formular. |
|
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 |
---|---|
|
Ü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 VerarbeitungTHISFORM.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.
Dropdown-Kombinationsfeld
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