AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls TPasswordCheck (Komponente mit Anbindung an ein TEdit)
Thema durchsuchen
Ansicht
Themen-Optionen

TPasswordCheck (Komponente mit Anbindung an ein TEdit)

Ein Thema von Satty67 · begonnen am 21. Sep 2010 · letzter Beitrag vom 22. Sep 2010
Antwort Antwort
Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#1

TPasswordCheck (Komponente mit Anbindung an ein TEdit)

  Alt 21. Sep 2010, 18:35
Wie angedroht hier nun die Komponente zu meiner letztlich kreierten Passwort-Prüfmethode.

Komponente TPasswordCheck

Kurzbeschreibung:

TPasswordCheck wird wie ein TUpDown an ein TEdit gebunden. Eingaben im Editfeld werden direkt ausgewertet und angezeigt. Die Anzeige erfolgt als Prozentwert und/oder grafisch mit drei frei ladbaren Grafiken (gut, mittel, schlecht). Die Grenzwerte, wann von schlecht zu mittel zu gut gesprungen wird, sind wählbar. Zusätzlich noch eine strengere Entropie-Prüfung (ForceEntropie) einstellbar.

Unabhängig von einem TEdit kann ein Passwort auch mit der Funktion GetStrength(Password) bewertet werden. Die restlichen Eigenschaften (sind ja nicht viele) sind selbsterklärend.

Sollte ich etwas übersehen haben oder sich ein Bug eingeschlichen haben... kurzer Hinweis, ich passe das dann an.

PS: getestet mit Delphi 2007. Bis runter zu Delphi 7 sollte es laufen, für Delphi 5/6 nötige Anpassung siehe Post #3. Ob es ab Delphi 2009 läuft, kann ich nicht testen.

Den Vorschlag von mkinzler mit dem TCustomEdit habe ich übernommen. Die direkte Kompatibilität zu Delphi 5/6 spare ich mir.
Miniaturansicht angehängter Grafiken
passwordcheckpreview.png   passwortcheckoi.png  
Angehängte Dateien
Dateityp: zip PasswordCheck_20100922.zip (3,2 KB, 4x aufgerufen)

Geändert von Satty67 (22. Sep 2010 um 16:51 Uhr)
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#2

AW: TPasswordCheck (Komponente mit Anbindung an ein TEdit)

  Alt 21. Sep 2010, 19:20
Ich hab's mir jetzt nicht angesehen, aber trotzdem eine Kleinigkeit: Entropy schreibt sich auf Englisch mit Y. Ich finde, man sollte seine Bezeichner immer konsequent in einer Sprache (bevorzugt Englisch) halten. Da im Rest anscheinend ebenfalls englische Bezeichner verwendet werden, solltest du diese Kleinigkeit vielleicht noch ändern.
  Mit Zitat antworten Zitat
Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#3

AW: TPasswordCheck (Komponente mit Anbindung an ein TEdit)

  Alt 22. Sep 2010, 09:05
Nötige Anpassungen für Delphi 5:

Unit Types und nicht erbbare Propertys auskommentieren (oder löschen)
Delphi-Quellcode:
uses
  Messages, Classes, Controls, StdCtrls, Graphics{, Types};

    //property HelpContext;
    //property HelpType;
    //property HelpKeyword;

    //property OnMouseActivate;
    //property OnMouseEnter;
    //property OnMouseLeave;
.
Die Funktion TryStrToDate kennt Delphi 5 nocht nicht, der Ersatz sieht so aus:
Delphi-Quellcode:
function TPasswordCheck.RemoveDateSeparator(const AString : string): String;
var
  i : Integer;
  DateStr : String;
begin
  DateStr := AString;
  i := Length(DateStr);
  if (i > 0) and (AString[i] = DateSeparator) then
    Delete(DateStr, i, 1);

  try
     StrToDate(DateStr);
     Result := StringReplace(AString, DateSeparator, '', [rfReplaceAll])
  except
    Result := AString;
  end;
end;
.
Der Edit.Text (meistens Edit1) löst natürlich eine (erwartete) Exeption aus, die in der IDE nervt. Ich schau später mal, wie man das ändern kann...

Kleinigkeit: Entropy
Done

Geändert von Satty67 (22. Sep 2010 um 09:13 Uhr)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: TPasswordCheck (Komponente mit Anbindung an ein TEdit)

  Alt 22. Sep 2010, 09:15
Wenn man den Typ von FEdit von TEdit auf TCustomEdit ändert, funktioniert es auch mit anderen Editkomponenten
Markus Kinzler
  Mit Zitat antworten Zitat
Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#5

AW: TPasswordCheck (Komponente mit Anbindung an ein TEdit)

  Alt 22. Sep 2010, 10:30
Ja, das sind die Kleinigkeiten, die man nicht bedenkt... werde ich heute Abend noch anpassen.

Für Delphi5/6 Nutzer hab' ich dann sicher auch eine bequemere Lösung gefunden.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.168 Beiträge
 
Delphi 12 Athens
 
#6

AW: TPasswordCheck (Komponente mit Anbindung an ein TEdit)

  Alt 22. Sep 2010, 10:42
Für Delphi5/6 Nutzer hab' ich dann sicher auch eine bequemere Lösung gefunden.
Delphi-Quellcode:
{$IFDEF VER130} 
  {$UNDEF USE_TYPES}
{$ELSE}
  {$IFDEF VER140} 
    {$UNDEF USE_TYPES}
  {$ELSE}
    {$DEFINE USE_TYPES}
  {$ENDIF}
{$ENDIF}

uses
  Messages, Classes, Controls, StdCtrls, Graphics {$IFDEF USE_TYPES}, Types{$ENDIF};

...

    {$IFDEF USE_TYPES}
      property HelpContext;
      property HelpType;
      property HelpKeyword;

      property OnMouseActivate;
      property OnMouseEnter;
      property OnMouseLeave;
    {$ENDIF}
Ich hab mich so an die ConditionalExpressions gewöhnt ... schade daß D5 diese vermutlich noch nicht kennt.
Delphi-Quellcode:
uses
  Messages, Classes, Controls, StdCtrls, Graphics
    {$IF CompilerVersion > 14.0}, Types{$IFEND};

...
Oder du nutzt eine der vielen Compiler-Versions-Check-INC-Dateien (z.B. die aus den Jedi und von mir gibt's auch irgendwo in der DP eine VersionsCheck.inc)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (22. Sep 2010 um 10:44 Uhr)
  Mit Zitat antworten Zitat
Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#7

AW: TPasswordCheck (Komponente mit Anbindung an ein TEdit)

  Alt 22. Sep 2010, 11:55
Sieht gut aus, am meisten nervt aber die Exception bei der Datumsprüfung mit Delphi5/6. Will jetzt aber nicht den String von Hand zerlegen oder den Delphi 7+ Quellcode "klauen".

Mal sehen, was mir da einfällt.

Wird Zeit das eine schöne günstige Hobby-Version von XE kommt, dann kann man endlich guten Gewissens den Leuten Delphi 5 ausreden.
  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 14:07 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