Frage

Ganz einfach, aber ich kann keine Antwort finden.

Ich baue eine app in Delphi 5 Enterprise, und mag, dass mein App den neuen fett schwarzen Punkt in einem Passwort-Feld anstelle ein Sternchen zu verwenden.

Wie kann ich das tun?

War es hilfreich?

Lösung 2

Danke an alle die oben genannten Versuche, und alles, was dazu beigetragen, aber ich hatte alle relevanten Teile miteinander zu verbinden, um eine ganze Lösung zu erhalten.

Dank Sinan Unur für den Hinweis auf die ES_PASSWORD Flagge, die standardmäßig in Delphi verwendet wird, aber nur, wenn PasswordChar ist <> # 0 (NUL).

Das bedeutet, dass, wenn Sie PasswordChar auf etwas gesetzt, den ES_PASSWORD Flag setzt, und ruft dann SendMessage(Handle, EM_SETPASSWORDCHAR, Ord(FPasswordChar), 0); (dank Stijn Sanders für mich in Richtung der StdCtrls Quelle zeigt).

Wenn ich eine Unterklasse erstellen und Bypass der Leitung Senden des EM_SETPASSWORDCHAR Feld, I noch erhalten nur Sterne.

Was ich vergessen, war zu tun Themen ermöglichen (was in meiner alten Version von Delphi eine Ressourcendatei erfordert bei der Zusammenstellung). Schwupps, es funktioniert; Blobs gibt es zuhauf!

So in der Zusammenfassung:

  1. Definieren Sie die ES_PASSWORD konstant, wenn Sie noch nicht haben.

    const
      ES_PASSWORD = 32;
    
  2. Erstellen Sie eine TEdit Unterklasse und überschreiben CreateParams umfasst ES_PASSWORD im Fensterstil.

    procedure TPasswordEdit.CreateParams(var Params: TCreateParams);
    begin
      inherited;
      Params.Style := Params.Style or ES_PASSWORD;
    end;
    
  3. Aktivieren Themen für Ihr Programm.

Und tun nicht die PasswordChar Eigenschaft festgelegt. Fertig!

Andere Tipps

Siehe PasswordBox: A Better Way Passwörter eingeben:

  

die schwarzen Punkte einsteigen, den visuellen Stil zu zeigen, basierend war irrsinnig einfach!

    private const int ES_PASSWORD = 0x0020;
    ...

    protected override CreateParams CreateParams
    {
        CreateParams cp = base.CreateParams;
        ...

        cp.Style |= ES_PASSWORD;
        ...

        return cp;
    }

Ich bin sicher, verwendet es die Standard-UI-Schriftart. Der CharMap Code ist U + 25Cf

Ich weiß nicht, ob dies funktionieren wird, aber Sie könnten diese kopieren können.

Bis zu Delphi 2007, würde mit "*" für Ihr Passwort Charakter als "*" zeigen. Beginnend mit Delphi 2009, ist dieser zeigt richtig .

Nach KB 956609 ist das Punktzeichen Unicode 0x25cf. Es ist nicht auf eine bestimmte Schriftart gebunden, aber die verknüpfte Seite ausdrücklich erwähnt, dass der IE die Schriftart Tahoma verwendet.

Der fette schwarze Punkt in Passwort-Feldern ist Unicode-Zeichen U + 25Cf ( "Schwarzer Kreis"). Die häufigsten Fonts verfügen über diesen Charakter.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top