![]() |
TPasswordCheck (Komponente mit Anbindung an ein TEdit)
Liste der Anhänge anzeigen (Anzahl: 3)
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. |
AW: TPasswordCheck (Komponente mit Anbindung an ein TEdit)
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.
|
AW: TPasswordCheck (Komponente mit Anbindung an ein TEdit)
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... Zitat:
|
AW: TPasswordCheck (Komponente mit Anbindung an ein TEdit)
Wenn man den Typ von FEdit von TEdit auf TCustomEdit ändert, funktioniert es auch mit anderen Editkomponenten
|
AW: TPasswordCheck (Komponente mit Anbindung an ein TEdit)
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. |
AW: TPasswordCheck (Komponente mit Anbindung an ein TEdit)
Zitat:
Delphi-Quellcode:
Ich hab mich so an die ConditionalExpressions gewöhnt ... schade daß D5 diese vermutlich noch nicht kennt. :cry:
{$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}
Delphi-Quellcode:
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)
uses
Messages, Classes, Controls, StdCtrls, Graphics {$IF CompilerVersion > 14.0}, Types{$IFEND}; ... |
AW: TPasswordCheck (Komponente mit Anbindung an ein TEdit)
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. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:53 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