66 Stimmen

Delphi/Lazarus: Passwort Edit

Tipp von Stefan Trost | Letztes Update am 10.01.2023 | Erstellt am 28.12.2012

Wenn man einen Login-Bereich oder eine sonstige Passworteingabe in seinem Delphi- oder Lazarus-Programm realisieren möchte, ist es ganz praktisch, wenn man das Feld für die Eingabe des Passworts so gestaltet, wie ein Passwort-Eingabefeld üblicherweise im Browser dargestellt ist: Das heißt, die eingegeben Zeichen sind nicht im Klartext lesbar oder sichtbar und stattdessen werden Sternchen oder Punkte angezeigt.

Für die Realisierung eines solchen Vorhabens benötigen wir sowohl in Delphi als auch in Lazarus keine besondere Komponente. Wir können nämlich einfach unser normales TEdit-Feld nehmen, um jegliche Nutzer-Eingabe zu maskieren, denn die TEdit-Komponente stellt uns schon von Hause aus die Eigenschaft "PasswordChar" zur Verfügung, die wir dafür nutzen können:

// normale Anzeige im Klartext
Edit1.PasswordChar := #0;

// Eingabe wird mit * maskiert
Edit1.PasswordChar := '*';

// Eingabe wird mit einem Punkt maskiert
Edit1.PasswordChar := #180;

Diese Eigenschaft lässt sich einfach über den Objektinspektor einstellen oder natürlich wahlweise auch über den Code wie oben in diesem Beispiel gezeigt ist.

Das Zeichen #0 (welches auch der Default-Wert für "PasswordChar" ist) sorgt dafür, dass die Eingabe im Klartext erfolgt und vollständig sichtbar ist. Alle anderen Zeichen außer #0 sorgen dafür, dass dieses angegebene Zeichen statt den eingegebenen Zeichen beziehungsweise dem Text des Edits angezeigt wird. Im Beispiel-Code zeigen wir dies für das Sternchen '*' und den Mittelpunkt (dieser hat den Wert #180 während wir das Sternchen hier direkt als solches in den Code schreiben). Natürlich lassen sich auch beliebige andere Zeichen als Maske verwenden.

Setzen, Auslesen und Verarbeiten des Textes

Intern und im Code lässt sich der Wert des Edits übrigens weiterhin einfach wie gewohnt über Edit1.Text ansprechen, setzen, auslesen und normal weiter verarbeiten. Nur dem Nutzer wird das Maskierungszeichen angezeigt, auf die Verarbeitung des Wertes hat diese Anzeige dagegen keinerlei Auswirkung.

Passwort-Sichtbar-Machen-Funktion

Manche Passworteingaben ermöglichen dem Nutzer sein Passwort über einen Button wahlweise (für eine kurze Zeit) sichtbar zu machen. Auch solch eine Funktion können wir in unserem Delphi- oder Lazarus-Programm sehr einfach einrichten:

procedure TForm1.Button1Click(Sender: TObject);
begin
  if Edit1.PasswordChar = #0 then begin
     Edit1.PasswordChar := '*';
  end else begin
     Edit1.PasswordChar := #0;
  end;
end;      

Klickt der Nutzer auf diesen Button wird zunächst geprüft, ob das Edit-Feld gerade maskiert ist oder nicht, also ob ein PasswordChar gesetzt ist. Falls nein, wird ein PasswordChar gesetzt (hier das Sternchen). Falls ja, wird das aktuell gesetzte PasswordChar durch ein Setzen auf #0 aufgehoben. Damit lässt sich die Maskierung ein- und ausschalten.

AntwortenPositivNegativ

Über den Autor

AvatarSoftware von Stefan Trost finden Sie auf sttmedia.de. Benötigen Sie eine individuelle Software nach Ihren eigenen Wünschen? Schreiben Sie uns: sttmedia.de/kontakt
Profil anzeigen

 

Ähnliche Themen

Das sichere Passwort

Info | 0 Kommentare

Delphi: Systemweiter HotKey

Tutorial | 3 Kommentare

Wichtiger Hinweis

Bitte beachten Sie: Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.

Jetzt mitmachen

Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.