AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Leeres Eingabefeld mit Standardwert füllen

Leeres Eingabefeld mit Standardwert füllen

Ein Thema von Jean312 · begonnen am 24. Dez 2015 · letzter Beitrag vom 19. Jan 2016
Antwort Antwort
Seite 1 von 4  1 23     Letzte » 
Jean312

Registriert seit: 1. Dez 2013
54 Beiträge
 
#1

Leeres Eingabefeld mit Standardwert füllen

  Alt 24. Dez 2015, 04:30
Ein Hallo an die DP-Gemeinde,
ich möchte Eingabefelder mit einem Standardwert füllen, wenn diese leer sind (z.B. Straßenname für das Eingabefeld "Straße"). Sobald das erste Zeichen in diesem Eingabefeld geschrieben wurde, soll dieser Standardwert verschwinden und wenn es leer ist wieder erscheinen.

Habe es mit Canvas.Textout versucht, dies löst aber eine Exception aus. Ich habe es im onCreate des Forms und im onChange des Eingabefeldes benutzt.
Hat jemand eine Idee, warum die Exception ausgelöst wird oder wie ich das realisieren kann?

Vielen Dank im Voraus.
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#2

AW: Leeres Eingabefeld mit Standardwert füllen

  Alt 24. Dez 2015, 05: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 05:35 Uhr)
  Mit Zitat antworten Zitat
Jean312

Registriert seit: 1. Dez 2013
54 Beiträge
 
#3

AW: Leeres Eingabefeld mit Standardwert füllen

  Alt 24. Dez 2015, 05:48
Vielen Dank für die rasche Antwort.
Diese Methode hatte ich so ähnlich schon eingebunden.
Habe aber sehr viele Objekte dieser Art. Ich dachte mir, dass es eben mit dieser Art Textout auf ein ungefülltes Eingabefeld schneller geht.
Dann werde ich es eben wohl doch mit dem guten alten Stringvergleich machen müssen. 😕
  Mit Zitat antworten Zitat
Benutzerbild von frankyboy1974
frankyboy1974

Registriert seit: 7. Apr 2015
Ort: SH
169 Beiträge
 
Delphi XE7 Professional
 
#4

AW: Leeres Eingabefeld mit Standardwert füllen

  Alt 24. Dez 2015, 06:20
hallo,

es gibt doch die Eigenschaft 'texthint' eines Tedit. Ich weiss nicht ab wann es diese Eigenschaft gibt, aber ich benutze diese schon seit Jahren.

mfg
Java ist auch eine Insel.
Ist Delphi von Oracle?
In meiner Buchstabensuppen fehlt das C++!
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#5

AW: Leeres Eingabefeld mit Standardwert füllen

  Alt 24. Dez 2015, 06:25
Habe aber sehr viele Objekte dieser Art. Ich dachte mir, dass es eben mit dieser Art Textout auf ein ungefülltes Eingabefeld schneller geht.
In diesem Fall würde es sich aus meiner Sicht lohnen, eine eigene Komponente von TEdit abzuleiten und diese Funktionalität dort bereitzustellen. Du brauchst dann ein weiteres Property (published, so daß es im OI bearbeitet werden kann), in das der Default-String eingegeben wird. Die entsprechenden Überprüfungen kannst du dann ebenfalls gleich im Komponenten-Code erledigen.
  Mit Zitat antworten Zitat
Jean312

Registriert seit: 1. Dez 2013
54 Beiträge
 
#6

AW: Leeres Eingabefeld mit Standardwert füllen

  Alt 24. Dez 2015, 07:56
Habe mir das auch schon überlegt, aber eben noch nie gemacht. Muss mal sehen, ob ich hier Einträge finden kann, wie man soetwas umsetzt. Danke für eure Tipps.
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
4.252 Beiträge
 
Delphi 10.1 Berlin Professional
 
#7

AW: Leeres Eingabefeld mit Standardwert füllen

  Alt 24. Dez 2015, 08:05
Moin...
Zitat:
In diesem Fall würde es sich aus meiner Sicht lohnen, eine eigene Komponente von TEdit abzuleiten
...wenn man nicht unbedingt was dabei lernen will kann man auch was fertiges nehmen. Das TJvEdit von den Jedis hat eine Property EmptyValue... Sobald das Edit den Focus verliert und leer ist wird der EmptyValue hineingeschrieben. Beim Betreten wird der EmptyValue geleert um gleich schreiben zu können.

Geändert von haentschman (24. Dez 2015 um 08:15 Uhr)
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#8

AW: Leeres Eingabefeld mit Standardwert füllen

  Alt 24. Dez 2015, 08:13
Noch nie gemacht – eine prima Gelegenheit, damit anzufangen:
Auch dir

Zitat:
In diesem Fall würde es sich aus meiner Sicht lohnen, eine eigene Komponente von TEdit abzuleiten
...wenn man nicht unbedingt was dabei lernen will kann man auch was fertiges nehmen. Das TJvEdit von den Jedis hat eine Property EmptyValue... Sobald das Edit den Focus verliert und leer ist wird der EmptyValue hineingeschrieben. Beim Betreten wird das Edit geleert um gleich schreiben zu können.
War aber nicht ganz das, was der TE wollte: "Sobald das erste Zeichen in diesem Eingabefeld geschrieben wurde, soll dieser Standardwert verschwinden ..."

Geändert von Perlsau (24. Dez 2015 um 08:16 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
7.030 Beiträge
 
Delphi 10.3 Rio
 
#9

AW: Leeres Eingabefeld mit Standardwert füllen

  Alt 24. Dez 2015, 08:55
es gibt doch die Eigenschaft 'texthint' eines Tedit. Ich weiss nicht ab wann es diese Eigenschaft gibt, aber ich benutze diese schon seit Jahren.
Das ist genau die richtige Lösung. Die Funktionalität gibt es wohl schon seit Windows Vista, aber die erste Delphi-Version, die das Property anbietet, kann ich gerade auch nicht benennen. Bei XE2 ist es zumindest schon dabei.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
26.858 Beiträge
 
Delphi 10.3 Rio
 
#10

AW: Leeres Eingabefeld mit Standardwert füllen

  Alt 24. Dez 2015, 08:56
Genau, wozu das Rad neu erfinden?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:33 Uhr.
Powered by vBulletin® Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf