Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Lazarus (IDE) (https://www.delphipraxis.net/81-lazarus-ide/)
-   -   Passworteingabe, wie mit Sternchen verstecken, aber nicht das letzte Zeichen? (https://www.delphipraxis.net/186249-passworteingabe-wie-mit-sternchen-verstecken-aber-nicht-das-letzte-zeichen.html)

AlexII 17. Aug 2015 22:18


Passworteingabe, wie mit Sternchen verstecken, aber nicht das letzte Zeichen?
 
Hallo,

hat jemand eine Idee wie man ein Edit so zurecht biegt, dass es bei der Passworteingabe die Zeichen mit Sternchen versteckt, aber nicht das letzte Zeichen oder, dass das letzte Zeichen nach 1 Sek. auch zum Sternchen wird? So wie auf Smartphones üblich.

Die Eigenschaft "PasswordChar" kenne ich, aber es macht alles erkennbar oder nicht.

Vielen Dank!

Perlsau 18. Aug 2015 00:58

AW: Passworteingabe, wie mit Sternchen verstecken, aber nicht das letzte Zeichen?
 
Zitat:

Zitat von AlexII (Beitrag 1312487)
Hallo, hat jemand eine Idee wie man ein Edit so zurecht biegt, dass es bei der Passworteingabe die Zeichen mit Sternchen versteckt, aber nicht das letzte Zeichen oder, dass das letzte Zeichen nach 1 Sek. auch zum Sternchen wird? So wie auf Smartphones üblich.

Da gibt's nichts zu biegen und zu brechen, das machst du einfach in OnChange. Allerdings mußt du dir den wahren Inhalt des Edits in einer privaten Stringvariablen merken, denn wenn du im Edit nach einer gewissen Timer-Zeit das zuletzt eingegebene Zeichen änderst, änderst du natürlich das Text-Property. Oder du schaust dir im Quellcode von TEdit die Methoden im Zusammenhang mit PasswordChar an, leitest ein eigenes Edit davon ab und verpaßt ihm diese Verzögerung.

Wird bei Smartphones das letzte Zeichen nicht ebenfalls mit einem Sternchen oder Punkt verdeckt? Soweit ich das bislang beobachten konnte, stellt das zuletzt eingegeben Zeichen keine Ausnahme dar, sondern wird ebenfalls nach kurzer Zeit versteckt.

Luckie 18. Aug 2015 09:47

AW: Passworteingabe, wie mit Sternchen verstecken, aber nicht das letzte Zeichen?
 
Zitat:

Zitat von Perlsau (Beitrag 1312499)
Wird bei Smartphones das letzte Zeichen nicht ebenfalls mit einem Sternchen oder Punkt verdeckt? Soweit ich das bislang beobachten konnte, stellt das zuletzt eingegeben Zeichen keine Ausnahme dar, sondern wird ebenfalls nach kurzer Zeit versteckt.

Genau das will er ja erreichen.

Aber ich halte es für ein Sicherheitsrisiko. Am PC oder Laptop guck einem doch schon mal eher einer über die Schulter und man kann sich nicht mal eben schnell weg drehen. Beim Handy ist es wohl der etwas popeligen Tastatur geschuldet und ein Kompromiss zwischen Sicherheit und Benutzerfreundlichkeit. Also ich würde da nicht viel Mühe und zeit investieren. Zumal das Verhalten auf einem Rechner auch eher ungewohnt wäre.

Sherlock 18. Aug 2015 11:26

AW: Passworteingabe, wie mit Sternchen verstecken, aber nicht das letzte Zeichen?
 
Zitat:

Zitat von Luckie (Beitrag 1312535)
Aber ich halte es für ein Sicherheitsrisiko. Am PC oder Laptop guck einem doch schon mal eher einer über die Schulter und man kann sich nicht mal eben schnell weg drehen. Beim Handy ist es wohl der etwas popeligen Tastatur geschuldet und ein Kompromiss zwischen Sicherheit und Benutzerfreundlichkeit. Also ich würde da nicht viel Mühe und zeit investieren. Zumal das Verhalten auf einem Rechner auch eher ungewohnt wäre.

Ich unterstütze den Antrag. Die Smartphone-Variante ist zwar neckisch, aber nur eine Krücke, weil man auf den Bildschirmtastaturen gerne mal daneben tippt. Das ist auf einem PC nicht nötig.

Sherlock

mm1256 18. Aug 2015 12:12

AW: Passworteingabe, wie mit Sternchen verstecken, aber nicht das letzte Zeichen?
 
(kleines) Sicherheitsrisiko...klar, aber wenn er es so möchte. Abgesehen davon ist es schon hilfreich für den User, wenn er "kurz" kontrollieren kann, was er eingegeben hat (Stichwort Feststelltaste). Ich mag dieses Verhalten jedenfalls und würde das Problem mit dem Canvas angehen, und für kurze Zeit einfach das zuletzt eingegebene Zeichen anzeigen, dann kann man den Inhalt des TEdit normal auslesen, und braucht keine Hilfsvariable.

Perlsau 18. Aug 2015 12:40

AW: Passworteingabe, wie mit Sternchen verstecken, aber nicht das letzte Zeichen?
 
Zitat:

Zitat von Sherlock (Beitrag 1312553)
Die Smartphone-Variante ist zwar neckisch, aber nur eine Krücke, weil man auf den Bildschirmtastaturen gerne mal daneben tippt. Das ist auf einem PC nicht nötig.

Mir hat diese neckische Spielerei bislang noch nichts genützt. Ich versuche schon seit Monaten, mich mit dem Smartphone an meinem Google-Konto anzumelden, vertippe mich aufgrund der winzigen Tastatur natürlich ständig, bin aber nie schnell genug, die Korrektur vorzunehmen, weil das letzte Zeichen immer so schnell verschwindet. Für mich ist das Smartphone eindeutig zu winzig.

Jumpy 18. Aug 2015 13:56

AW: Passworteingabe, wie mit Sternchen verstecken, aber nicht das letzte Zeichen?
 
Zitat:

Zitat von Perlsau (Beitrag 1312558)
Zitat:

Zitat von Sherlock (Beitrag 1312553)
Die Smartphone-Variante ist zwar neckisch, aber nur eine Krücke, weil man auf den Bildschirmtastaturen gerne mal daneben tippt. Das ist auf einem PC nicht nötig.

Mir hat diese neckische Spielerei bislang noch nichts genützt. Ich versuche schon seit Monaten, mich mit dem Smartphone an meinem Google-Konto anzumelden, vertippe mich aufgrund der winzigen Tastatur natürlich ständig, bin aber nie schnell genug, die Korrektur vorzunehmen, weil das letzte Zeichen immer so schnell verschwindet. Für mich ist das Smartphone eindeutig zu winzig.

Bei manchen Passworteingaben (z.B. Wlan-Schlüssel) kann man ja so ein Häkchen machen ala "Passwort anzeigen", dann kann man das ohne Sternchen sehen. Ich muss gestehen, dass ich das fast immer nutze, da ich mich auch ständig vertippe.

Dalai 18. Aug 2015 14:28

AW: Passworteingabe, wie mit Sternchen verstecken, aber nicht das letzte Zeichen?
 
@mm1256: Schonmal in einem Passworteingabefeld die Feststelltaste benutzt? Dann hast du sicher den Balloon Tip des Systems bemerkt, der auf eben diesen Umstand (Caps Lock) hinweist. IIRC funktioniert das sogar mit älteren Delphis erstellter Software. Mit anderen Worten: diese Taste ist kein sinnvolles Argument für ein solches Verhalten. Und ein Danebentippen wie beim Handy/Smartphone ist nun auch eher unwahrscheinlich, weil die Tasten doch schon was größer sind.

MfG Dalai

mm1256 18. Aug 2015 17:16

AW: Passworteingabe, wie mit Sternchen verstecken, aber nicht das letzte Zeichen?
 
Zitat:

Zitat von Dalai
...Und ein Danebentippen wie beim Handy/Smartphone ist nun auch eher unwahrscheinlich, weil die Tasten doch schon was größer sind

Warum nehmen Programmierer an, dass User die mit ihren Programmen arbeiten mit der Tastatureingabe genauso fit sind wie sie? Mit der Größe der Tasten hat das nämlich nichts oder nicht viel zu tun, wenn ein User im 2-Finger-Suchsystem schon froh ist, überhaupt die richtigen Tasten zu finden.

Zitat:

Zitat von Perlsau
Mir hat diese neckische Spielerei bislang noch nichts genützt. Ich versuche schon seit Monaten, mich mit dem Smartphone an meinem Google-Konto anzumelden, vertippe mich aufgrund der winzigen Tastatur natürlich ständig, bin aber nie schnell genug, die Korrektur vorzunehmen, weil das letzte Zeichen immer so schnell verschwindet. Für mich ist das Smartphone eindeutig zu winzig.

Geht mir genauso. Abhilfe: diese Kugelschreiber mit der Gummikappe oben drauf. Wenn man sich da mal dran gewöhnt hat, will man sie nicht mehr missen. Und dann ist man auch so schnell damit, dass die kurze Zeit der Anzeige im Klartext ausreicht :thumb:

Luckie 18. Aug 2015 23:41

AW: Passworteingabe, wie mit Sternchen verstecken, aber nicht das letzte Zeichen?
 
Ich benutze jetzt seit 20 Jahren Computer und hatte an PCs noch nie Probleme ein Passwort einzugeben. Auch habe ich noch nie gehört, dass jemand bei der Passworteingabe verzweifelt ist.

hoika 19. Aug 2015 04:16

AW: Passworteingabe, wie mit Sternchen verstecken, aber nicht das letzte Zeichen?
 
Hallo Luckie,
ich schon :)

Wir haben bei uns auch ein "Passwort zeigen".


Heiko

Dejan Vu 19. Aug 2015 07:38

AW: Passworteingabe, wie mit Sternchen verstecken, aber nicht das letzte Zeichen?
 
Lustig: Der Kommentar 'Sicherheitsrisiko, wenn Dir einer über die Schulter schaut', kam bisher bei dem Wunsch des TE, das letzte Zeichen kurz anzeigen zu lassen, aber eine Checkbox 'Ganzes Kennwort anzeigen, sodass jeder mitlesen kann' wird nicht moniert. :lol:

Also, der Vollständigkeit halber:

Es ist ein großes Sicherheitsrisiko, sich über einen Schalter/Checkbox das Kennwort im Klartext anzeigen zu lassen.

Sir Rufo 19. Aug 2015 08:39

AW: Passworteingabe, wie mit Sternchen verstecken, aber nicht das letzte Zeichen?
 
Wobei der Benutzer bei der CheckBox die Sicherheit selber in der Hand hat und bei einem Edit-Feld, dass das letze eingegebene Zeichen immer (für eine bestimmte Zeit) anzeigt, eben nicht.

Bei einem Mobile-Device kann ich mich auch mal eben wegdrehen und schon sieht keiner mehr etwas, oder eben nur Fragmente. Bei einem Desktop-System ist das mit dem eben mal wegdrehen etwas schwieriger.

Generell wurde bei den Mobile-Devices diese Art der Passworteingabe (mit Feedback zum letzten Zeichen) eingeführt, weil es eben keinen echten Feedback gibt, ob ich einen Taste nun gedrückt habe oder nicht und ob ich auch wirklich die Taste erwischt habe die ich wollte. Eine Tastatur mit echten Tasten liefert da ein wesentlich mehr Feedback, auch wenn man mal ein wenig neben die eigentliche Taste haut.

Und es ist kein perfektes System um in allen Lebenslagen das Passwort immer und unter jeden Umständen korrekt eingeben zu können. Es soll die Eingabe nur um etwas mehr Feedback anreichern.

Luckie 19. Aug 2015 08:55

AW: Passworteingabe, wie mit Sternchen verstecken, aber nicht das letzte Zeichen?
 
Aber um mal auf das Problem zurückzukommen. Man müsste da wohl was mit einem Timer bauen, die Eingaben durch echte Sternchen ersetzen und sich die echte Eingabe irgendwo merken. So sollte es irgendwie gehen. Aber wie gesagt, mir wäre das zu mühsam, so was jetzt zu implementieren.

Sir Rufo 19. Aug 2015 09:01

AW: Passworteingabe, wie mit Sternchen verstecken, aber nicht das letzte Zeichen?
 
Zitat:

Zitat von Luckie (Beitrag 1312662)
Aber um mal auf das Problem zurückzukommen. Man müsste da wohl was mit einem Timer bauen, die Eingaben durch echte Sternchen ersetzen und sich die echte Eingabe irgendwo merken. So sollte es irgendwie gehen. Aber wie gesagt, mir wäre das zu mühsam, so was jetzt zu implementieren.

Das ist etwas für die langen Winterabende, wenn man eh nichts zu tun hat ;)

Um das schon mal vorzubereiten erzeugt man sich einfach eine neue Komponente
Delphi-Quellcode:
TSpecialPasswordEdit
implementiert die rudimentär so wie es auf die Schnelle eben geht und verwendet diese dort, wo benötigt.

Hat man irgendwann Zeit, diese Funktionaltät dort einzubauen, kompiliert man einfach die Anwendung neu und schwupps ist es fertig.

Mavarik 19. Aug 2015 09:05

AW: Passworteingabe, wie mit Sternchen verstecken, aber nicht das letzte Zeichen?
 
Zitat:

Zitat von Luckie (Beitrag 1312662)
Aber wie gesagt, mir wäre das zu mühsam, so was jetzt zu implementieren.

Das ist doch nur ne Sachen von 5 min...

Perlsau 19. Aug 2015 09:09

AW: Passworteingabe, wie mit Sternchen verstecken, aber nicht das letzte Zeichen?
 
Zitat:

Zitat von Luckie (Beitrag 1312662)
Aber um mal auf das Problem zurückzukommen. Man müsste da wohl was mit einem Timer bauen, die Eingaben durch echte Sternchen ersetzen und sich die echte Eingabe irgendwo merken. So sollte es irgendwie gehen. Aber wie gesagt, mir wäre das zu mühsam, so was jetzt zu implementieren.

Genau das hatte ich bereits in #2 vorgeschlagen:
Zitat:

Zitat von Perlsau (Beitrag 1312499)
... das machst du einfach in OnChange. Allerdings mußt du dir den wahren Inhalt des Edits in einer privaten Stringvariablen merken, denn wenn du im Edit nach einer gewissen Timer-Zeit das zuletzt eingegebene Zeichen änderst, änderst du natürlich das Text-Property.

Doch vielleicht wartet der TE aber auch einfach ab, bis man ihm eine "Ein-Klick-Methode" präsentiert, die das Problem löst :twisted:

Zitat:

Zitat von Mavarik (Beitrag 1312665)
Zitat:

Zitat von Luckie (Beitrag 1312662)
Aber wie gesagt, mir wäre das zu mühsam, so was jetzt zu implementieren.

Das ist doch nur ne Sachen von 5 min...

Sehe ich genauso: Im OnChange des betroffenen Edits den Timer starten, im Timer-Ereignis den Austausch vornehmen, dort auch die Merk-Variable aktualisieren und den Timer wieder anhalten. Vielleicht bräuchte man auch fünf Minuten, aber bestimmt keine zehn ... obwohl, als Anfänger vielleicht auch 20 ... :stupid:
Ach ja, man muß natürlich auch die Del- und die Backspace-Taste entsprechend berücksichtigen, da ja die Merkvariable immer aktualisiert werden muß, also vielleicht sechs Minuten, als Anfänger wären das dann vielleicht 30 Minuten ... :cyclops:

AlexII 19. Aug 2015 09:15

AW: Passworteingabe, wie mit Sternchen verstecken, aber nicht das letzte Zeichen?
 
Das Problem ist, meine Anwendung läuft ohne Tastatur, muss also für die Passworteingabe 9 Buttons erstellen, mit Zahlen und Buchstaben, so wie die alten Handys das haben. Die virtuelle Tastatur von Windows will ich aus bestimmten Gründer nicht nutzen. Ich arbeite also noch an meiner "Handy-Tastatur", die Passwortversteckerei kommt noch. ))

Perlsau 19. Aug 2015 09:18

AW: Passworteingabe, wie mit Sternchen verstecken, aber nicht das letzte Zeichen?
 
Wo ist da das Problem? Das ist doch kein Problem, das ist lediglich eine Aufgabe. Ein Problem wäre es, wenn du nicht weiterkämst, also nicht wüßtest, wie du das programmieren kannst.

AlexII 19. Aug 2015 09:22

AW: Passworteingabe, wie mit Sternchen verstecken, aber nicht das letzte Zeichen?
 
Zitat:

Zitat von Perlsau (Beitrag 1312670)
Wo ist da das Problem? Das ist doch kein Problem, das ist lediglich eine Aufgabe. Ein Problem wäre es, wenn du nicht weiterkämst, also nicht wüßtest, wie du das programmieren kannst.

Jah... es geht noch... komme gut voran. :thumb:

Mavarik 19. Aug 2015 09:30

AW: Passworteingabe, wie mit Sternchen verstecken, aber nicht das letzte Zeichen?
 
Zitat:

Zitat von AlexII (Beitrag 1312669)
Das Problem ist, meine Anwendung läuft ohne Tastatur, muss also für die Passworteingabe 9 Buttons erstellen, mit Zahlen und Buchstaben, so wie die alten Handys das haben.

Dann 2 Min. da nicht das Problem besteht, das ein User mit der Maus mitten in die Eingabe klickt...

Delphi-Quellcode:
var
    Ein,PW : ShortString;

procedure TForm86.Edit1Change(Sender: TObject);
begin
  Ein := Edit1.Text;
  Timer1.Enabled := true;
end;

procedure TForm86.Timer1Timer(Sender: TObject);
var
  i : integer;
begin
  Timer1.Enabled := false;

  for i:=1 to length(Ein) do
    if (Ein[i] <> '*') and (Length(Ein) > Length(PW)) then
      PW := PW + Ein[i];

  PW[0] := Ein[0];

  for i:=1 to length(Ein) do
    Ein[i] := '*';

  Edit1.Text := Ein;
  Edit1.SelStart := Length(Ein);
end;
Oder habe ich auf die schnelle etwas übersehen? (geht sicherlich auch schöner)

AlexII 19. Aug 2015 09:33

AW: Passworteingabe, wie mit Sternchen verstecken, aber nicht das letzte Zeichen?
 
@Mavarik Sage mal, du schaltest den Timer vor dem zu verarbeitenden Code aus, ist das gut so? Ich weiß der Code wird abgearbeitet, aber ich hatte immer bedenken bei sowas...

Mavarik 19. Aug 2015 09:38

AW: Passworteingabe, wie mit Sternchen verstecken, aber nicht das letzte Zeichen?
 
Zitat:

Zitat von AlexII (Beitrag 1312676)
@Mavarik Sage mal, du schaltest den Timer vor dem zu verarbeitenden Code aus, ist das gut so? Ich weiß der Code wird abgearbeitet, aber ich hatte immer bedenken bei sowas...

Warum? Woher kommen deinen Bedenken? "Er" springt dann sicherlich nicht aus der Procedure raus... :stupid:
Ich möchte doch nicht, dass die ganze Zeit der Timer in 250ms feuert...

Sherlock 19. Aug 2015 09:40

AW: Passworteingabe, wie mit Sternchen verstecken, aber nicht das letzte Zeichen?
 
Im OnTimer-Event schaltet man doch immer den Timer aus. Oder habe ich etwas verpasst?

Sherlock

AlexII 19. Aug 2015 09:42

AW: Passworteingabe, wie mit Sternchen verstecken, aber nicht das letzte Zeichen?
 
Zitat:

Zitat von Sherlock (Beitrag 1312679)
Im OnTimer-Event schaltet man doch immer den Timer aus. Oder habe ich etwas verpasst?

Sherlock

Habe ich auch immer gemacht, war mir aber nicht sicher.

Mavarik 19. Aug 2015 09:45

AW: Passworteingabe, wie mit Sternchen verstecken, aber nicht das letzte Zeichen?
 
Zitat:

Zitat von Sherlock (Beitrag 1312679)
Im OnTimer-Event schaltet man doch immer den Timer aus.

Immer? Wieso Immer?

Wenn ich einen zyklischen Timer brauche schalte ich Ihn doch nicht ab...

Wenn ich den Timer refreshen will dann ein

Delphi-Quellcode:
Timer1.Enabled := false;
Timer1.Enabled := true;
OK... Oder meine Routine dauert länger als das Interval des Timers (Ich hoffe nicht)... dann auch...

Sir Rufo 19. Aug 2015 09:55

AW: Passworteingabe, wie mit Sternchen verstecken, aber nicht das letzte Zeichen?
 
Wenn der Benutzer gar nicht in das Feld klicken können soll und in dem Feld selber keine Eingabe vornehmen soll, warum nimmt man dann überhaupt ein
Delphi-Quellcode:
TEdit
? :gruebel:

Mavarik 19. Aug 2015 10:00

AW: Passworteingabe, wie mit Sternchen verstecken, aber nicht das letzte Zeichen?
 
Zitat:

Zitat von Sir Rufo (Beitrag 1312686)
Wenn der Benutzer gar nicht in das Feld klicken können soll und in dem Feld selber keine Eingabe vornehmen soll, warum nimmt man dann überhaupt ein
Delphi-Quellcode:
TEdit
? :gruebel:

Weil die Information, dass keine Tastatur genommen werden soll zu spät gepostet wurde... :pale:

AlexII 19. Aug 2015 10:03

AW: Passworteingabe, wie mit Sternchen verstecken, aber nicht das letzte Zeichen?
 
Zitat:

Zitat von Mavarik (Beitrag 1312689)
Zitat:

Zitat von Sir Rufo (Beitrag 1312686)
Wenn der Benutzer gar nicht in das Feld klicken können soll und in dem Feld selber keine Eingabe vornehmen soll, warum nimmt man dann überhaupt ein
Delphi-Quellcode:
TEdit
? :gruebel:

Weil die Information, dass keine Tastatur genommen werden soll zu spät gepostet wurde... :pale:

Jahh... pardo, als ich das Thema erstellt habe, hatte ich noch die Windows Tastatur. Aber ein Edit schadet doch nicht, oder? Man stellt es einfach auf ReadOnly.

Sir Rufo 19. Aug 2015 10:27

AW: Passworteingabe, wie mit Sternchen verstecken, aber nicht das letzte Zeichen?
 
Oder einfach so
Delphi-Quellcode:
unit Forms.MainForm;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls, Vcl.Buttons;

type
  TMainForm = class( TForm )
    PasswordLabel: TLabel;
    Num0Button: TSpeedButton;     {OnClick -> NumButtonClick}
    Num1Button: TSpeedButton;     {OnClick -> NumButtonClick}
    Num2Button: TSpeedButton;     {OnClick -> NumButtonClick}
    Num3Button: TSpeedButton;     {OnClick -> NumButtonClick}
    Num4Button: TSpeedButton;     {OnClick -> NumButtonClick}
    Num5Button: TSpeedButton;     {OnClick -> NumButtonClick}
    Num6Button: TSpeedButton;     {OnClick -> NumButtonClick}
    Num7Button: TSpeedButton;     {OnClick -> NumButtonClick}
    Num8Button: TSpeedButton;     {OnClick -> NumButtonClick}
    Num9Button: TSpeedButton;     {OnClick -> NumButtonClick}
    ClearButton: TSpeedButton;    {OnClick -> ClearButtonClick}
    BackspaceButton: TSpeedButton; {OnClick -> BackspaceButtonCLick}
    Timer1: TTimer;
    procedure Timer1Timer( Sender: TObject );
    procedure FormShow( Sender: TObject );
    procedure NumButtonClick( Sender: TObject );
    procedure BackspaceButtonClick( Sender: TObject );
    procedure ClearButtonClick( Sender: TObject );
  private
    FPassword: string;
    procedure AddKey( const AChar: Char );
    procedure ClearPassword;
    procedure PresentPassword;
  public
    property Password: string read FPassword;
  end;

var
  MainForm: TMainForm;

implementation

{$R *.dfm}

uses
  System.StrUtils;

{ TMainForm }

procedure TMainForm.AddKey( const AChar: Char );
begin
  case AChar of
    #8:
      begin
        if Length( FPassword ) > 0
        then
          begin
            SetLength( FPassword, Length( FPassword ) - 1 );
            PasswordLabel.Caption := DupeString( '*', Length( FPassword ) );
          end;
      end;
    '0' .. '9':
      begin
        Timer1.Enabled       := False;
        PasswordLabel.Caption := DupeString( '*', Length( FPassword ) ) + AChar;
        FPassword            := FPassword + AChar;
        Timer1.Enabled       := True;
      end;
  end;
end;

procedure TMainForm.BackspaceButtonClick( Sender: TObject );
begin
  AddKey( #8 );
end;

procedure TMainForm.ClearButtonClick( Sender: TObject );
begin
  ClearPassword;
end;

procedure TMainForm.ClearPassword;
begin
  FPassword            := '';
  PasswordLabel.Caption := '';
end;

procedure TMainForm.FormShow( Sender: TObject );
begin
  PresentPassword;
end;

procedure TMainForm.NumButtonClick( Sender: TObject );
var
  Button: TComponent absolute Sender;
begin
  AddKey( Button.Name[ 4 ] ); // Ich bin halt faul ;o)
end;

procedure TMainForm.PresentPassword;
begin
  PasswordLabel.Caption := DupeString( '*', Length( FPassword ) );
end;

procedure TMainForm.Timer1Timer( Sender: TObject );
begin
  TTimer( Sender ).Enabled := False;
  PresentPassword;
end;

end.
Und falls nun doch die Tastatur zugelassen werden soll, dann erreicht man das ganz simpel mit
Delphi-Quellcode:
procedure TMainForm.FormKeyPress( Sender: TObject; var Key: Char );
begin
  AddKey( Key );
end;

AlexII 19. Aug 2015 10:32

AW: Passworteingabe, wie mit Sternchen verstecken, aber nicht das letzte Zeichen?
 
Cool... muss das ma unter die Lupe nehmen... :-D

implementation 19. Aug 2015 11:22

AW: Passworteingabe, wie mit Sternchen verstecken, aber nicht das letzte Zeichen?
 
Also ich würde ja aufpassen bei der Zeile
Delphi-Quellcode:
TTimer( Self ).Enabled := False;
Das sieht mir sehr danach aus, als solle da eigentlich Sender in die Klammern.

Sir Rufo 19. Aug 2015 13:03

AW: Passworteingabe, wie mit Sternchen verstecken, aber nicht das letzte Zeichen?
 
Zitat:

Zitat von implementation (Beitrag 1312710)
Also ich würde ja aufpassen bei der Zeile
Delphi-Quellcode:
TTimer( Self ).Enabled := False;
Das sieht mir sehr danach aus, als solle da eigentlich Sender in die Klammern.

Steht doch auch da ... wenigstens seit jetzt gerade eben :mrgreen:

Ja, war ein Vertippser ... merci :thumb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:22 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz