Einzelnen Beitrag anzeigen

Perlsau
(Gast)

n/a Beiträge
 
#2

AW: Leeres Eingabefeld mit Standardwert füllen

  Alt 24. Dez 2015, 06:25
  1. Default-String in einer Variablen im Private-Abschnitt als Konstante festlegen: EditText_Nachname = 'hier Nachname eingeben';
  2. Beim Programmstart Default-String zuweisen: Edit_Nachname.Text := EditText_Nachname;
  3. In der Ereignisbehandlung OnEnter prüfen, ob der Text in Edit_Nachname dem Default-String entspricht.
  4. Wenn ja, dann Edit_Nachname.Clear; ausführen, ansonsten den Text belassen.
  5. In der Ereignisbehandlung OnExit prüfen, ob Edit_Nachname.Text leer ist.
  6. Wenn ja, dann Default-String zuweisen: Edit_Nachname.Text := EditText_Nachname;
So würde zumindest ich das machen. Soll der Default-String erst verschwinden, wenn der Anwender Text eingibt, dann eben in OnKeyPress die Prüfung in Punkt 3 durchführen. OnKeyPress wird ausgelöst, bevor das gedrückte Zeichen ins Editfeld geschrieben wird. Daher kannst du in OnKeyPress prüfen, ob der String im Editfeld dem Defaultstring entspricht und diesen dann löschen, bevor das Zeichen geschrieben wird.

Geändert von Perlsau (24. Dez 2015 um 06:35 Uhr)
  Mit Zitat antworten Zitat