AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Passwort Char umgangen

Ein Thema von haentschman · begonnen am 20. Jun 2020 · letzter Beitrag vom 22. Jun 2020
Antwort Antwort
jziersch

Registriert seit: 9. Okt 2003
Ort: München
258 Beiträge
 
Delphi 10.4 Sydney
 
#1

AW: Passwort Char umgangen

  Alt 20. Jun 2020, 14:44
Hier der code einer einfachen aber sicheren Passwort Eingabekomponente.
Da es nicht von TEdit abstammt kann man es auch nichts auslesen.

Code:
type
  TWPGeheim = class(TCustomControl)
  private
    FText : String;
  protected
    procedure CreateParams(var Params: TCreateParams); override;
    procedure MouseDown(Button: TMouseButton; Shift: TShiftState;X, Y: Integer); override;
  public
    procedure Paint; override;
    procedure KeyPress(var Key: Char); override;
    property Text : String read FText write FText;
  end;

{ TWPGeheim }

procedure TWPGeheim.KeyPress(var Key: Char);
begin
  if Key=#8 then FText := Copy(FText,1,Length(FText)-1)
  else if Key>#32 then FText := FText + Key;
  invalidate;
end;

procedure TWPGeheim.MouseDown(Button: TMouseButton; Shift: TShiftState; X,
  Y: Integer);
begin
  inherited;
  SetFocus;
end;

procedure TWPGeheim.Paint;
var s : string;
    i : Integer;
begin
  inherited;
  if Focused then
       Canvas.Font.Color := clHighlight
  else Canvas.Font.Color := clWindowText;
  SetLength(s, Length(FText));
  for I := 1 to Length(s) do s[i] := '*';
  Canvas.TextOut( 1,1,s);
end;

procedure TWPGeheim.CreateParams(var Params: TCreateParams);
begin
  inherited CreateParams(Params);
  Params.Style := Params.Style or WS_BORDER or WS_TABSTOP;
end;
Kann man natürlich erweitern, z.b. um CTRL+V für Einfügen zu unterstützen:

Code:
procedure TWPGeheim.KeyPress(var Key: Char);
begin
  if Key=#8 then FText := Copy(FText,1,Length(FText)-1)
  else if Key>#32 then FText := FText + Key
  else if Key=Char(22) then // ^V
  begin
    Clipboard.Open;
    try
     SetLength(FText,30);
     SetLength(FText,Clipboard.GetTextBuf(PChar(FText),30));
    finally
     Clipboard.Close;
    end;
  end;
  invalidate;
end;
WPCubed GmbH
Komponenten für Delphi:
WPTools, wPDF, WPViewPDF
  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 01:36 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-2025 by Thomas Breitkreuz