AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Problem mit Aktualisierung von Eigenschaften von TEdit
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit Aktualisierung von Eigenschaften von TEdit

Ein Thema von JBJHJM · begonnen am 22. Dez 2009 · letzter Beitrag vom 23. Dez 2009
Antwort Antwort
JBJHJM

Registriert seit: 16. Jan 2009
88 Beiträge
 
Delphi 2005 Personal
 
#1

Problem mit Aktualisierung von Eigenschaften von TEdit

  Alt 22. Dez 2009, 13:59
Der Titel ist schlecht gewählt, lässt sich nur ausführlich erklären:

Mein Ziel:

3 TEdit Felder, becshriftet mit Edit1: Altes Passwort Edit2: Neues Passwort, Edit3: Neues Passwort wiederholen.
soweit kein Problem.
Wenn jetzt ein Edit zum schreiben ausgewählt wird, dann soll der Standardtext verschwinden und passwordchar auf * gesetzt werden.
Soweit auch kein Problem.
Wenn das Feld beschriftet wird, wird der text nicht resettet und der PasswordCHar bleibt leer. Wenn das Feld aber leer gelassen wird und abgewählt wird, solls resettet werden - PasswordChar aus, text auf Standard zurücksetzten.
So weit, so gut.
Die Funktionen die das bewirken, stehen im OnClick- und im OnMouseOver-Ereignis, und sehen etwa so aus:

Delphi-Quellcode:
procedure TForm3.Edit1Select(Sender: TObject);
begin
if Edit1.text = 'Altes Passwortthen
    begin Edit1.Text:= ''; Edit1.PasswordChar:= '*'; end;

if ((Edit2.Text = '') or (Edit2.Text = 'Neues Passwort'))
    then begin Edit2.Text:= 'Neues Passwort'; Edit2.PasswordChar:= #0; end
    else begin Edit2.PasswordChar:= '*'; end;

if ((Edit3.Text = '') or (Edit3.Text = 'Neues Passwort wiederholen'))
    then begin Edit3.Text:= 'Neues Passwort wiederholen'; Edit3.PasswordChar:= #0; end
    else begin Edit3.PasswordChar:= '*'; end;
end;
Jetzt kommt das Problem:
Wenn ich in Edit1 bin, und die TAB-Taste benutze, um ins nächste Edit zu springen, passiert - logischerweise - nichts, und das Passwort ist einfach sichtbar, was natürlich nicht sein darf.
Hat jemand eine Idee, wie ich den Sprung mit der TAB-Taste mit einbauen kann?
  Mit Zitat antworten Zitat
Niko

Registriert seit: 23. Jun 2003
416 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Problem mit Aktualisierung von Eigenschaften von TEdit

  Alt 22. Dez 2009, 14:10
Hi,

du könntest zum Zurücksetzen das OnExit-Ereignis und zum Aktivieren von passwordchar das OnEnter oder KeyPress-Ereignis verwenden.
"Electricity is actually made up of extremely tiny particles called electrons, that you cannot see with the naked eye unless you have been drinking." (Dave Barry)
  Mit Zitat antworten Zitat
JBJHJM

Registriert seit: 16. Jan 2009
88 Beiträge
 
Delphi 2005 Personal
 
#3

Re: Problem mit Aktualisierung von Eigenschaften von TEdit

  Alt 22. Dez 2009, 15:45
Danke, funktioniert 1a!

Habe noch eine Frage, wenn ich jetzt das Menu mit den drei Edits öffne, ist das erste schon immer ausgewählt/aktiviert, sodass der text nicht mehr angezeigt wird! Gibts da irgendeine Eigenschaft (wie bei Button default), die festlegt, ob ein Edit schon gewählt ist?
Wenn nicht wirds wohl irgendwo am COde liegen...
  Mit Zitat antworten Zitat
Niko

Registriert seit: 23. Jun 2003
416 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Problem mit Aktualisierung von Eigenschaften von TEdit

  Alt 22. Dez 2009, 15:58
Du kannst die Tabreihenfolge entsprechend ändern, aber das ist eher eine Notlösung. Das erste Steuerelement in der Tabreihenfolge bekommt am Anfang den Fokus.

Verleg doch lieber deinen Code vom OnEnter ins OnKeyPress (evtl. auch OnKeyDown), so dass du den Vorgabetext erst beim ersten Tastendruck löschst.
"Electricity is actually made up of extremely tiny particles called electrons, that you cannot see with the naked eye unless you have been drinking." (Dave Barry)
  Mit Zitat antworten Zitat
JBJHJM

Registriert seit: 16. Jan 2009
88 Beiträge
 
Delphi 2005 Personal
 
#5

Re: Problem mit Aktualisierung von Eigenschaften von TEdit

  Alt 22. Dez 2009, 16:31
Zitat von Niko:
Du kannst die Tabreihenfolge entsprechend ändern, aber das ist eher eine Notlösung. Das erste Steuerelement in der Tabreihenfolge bekommt am Anfang den Fokus.

Verleg doch lieber deinen Code vom OnEnter ins OnKeyPress (evtl. auch OnKeyDown), so dass du den Vorgabetext erst beim ersten Tastendruck löschst.
Hm, da muss ich mir noch was einfallen lassen.

Von OnEnter nach OnKeyDown/Press ist nicht gut, denn wenn der Text noch da ist, während man den Fokus schon auf das Edit gesetzt hat, wird jeder User erstmal den Text markieren und löschen. Der Text muss wirklich direkt verschwinden, sobald jemand im Begriff ist, etwas reinzuschreiben.

So, ist gelöst! Einfach die Eigenschaft Edit.tabstop auf false setzen, dann wird nichts mehr fokussiert.
Kleiner Nachteil - man kann den Text nicht mehr markieren, aber das ist mir an dieser Stelle egal!

Nochmal vielen Dank, Niko!
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#6

Re: Problem mit Aktualisierung von Eigenschaften von TEdit

  Alt 22. Dez 2009, 16:48
Zitat von JBJHJM:
Die Funktionen die das bewirken, stehen im OnClick- und im OnMouseOver-Ereignis
Das sind die falschen Events.
Richtig wäre OnEnter = Feld wird betreten, gleichgültig ob mit Maus oder Tastatur
OnExit = Feld wird verlassen
fork me on Github
  Mit Zitat antworten Zitat
JBJHJM

Registriert seit: 16. Jan 2009
88 Beiträge
 
Delphi 2005 Personal
 
#7

Re: Problem mit Aktualisierung von Eigenschaften von TEdit

  Alt 23. Dez 2009, 01:20
Zitat von sx2008:
Zitat von JBJHJM:
Die Funktionen die das bewirken, stehen im OnClick- und im OnMouseOver-Ereignis
Das sind die falschen Events.
Richtig wäre OnEnter = Feld wird betreten, gleichgültig ob mit Maus oder Tastatur
OnExit = Feld wird verlassen
Jup, in die ganzen verschiedenen Events bin ich noch nicht richtig eingearbeitet - zudem ich einfach mal behaupte, dass viele von ihnen wesentlich seltener verwendet werden, als andere, oder?

Auf jeden Fall ein Danke an euch beide!
  Mit Zitat antworten Zitat
Antwort Antwort


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 13:01 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz