![]() |
Edit-Feld mit Windows Passwort-Zeichen
Das TEdit-Control von Delphi besitzt zwar die Eigenschaft "PasswordChar", jedoch ist es nur sehr schwer möglich, die von Windows XP gewohnten schwarzen Punkte nutzen zu können.
Die nachfolgende Unit ist ein modifizierter Erbe des TEdit-Controls, das bei aktivierten Themes die schwarzen Punkte als Passwort-Zeichen verwendet. Sind die Themes deaktiviert, wird das altbekannte * als Passwort-Zeichen verwendet.
Delphi-Quellcode:
unit PasswordEdit;
interface uses Windows, Classes, Controls, StdCtrls; type TPasswordEdit = class(TCustomEdit) protected procedure CreateParams(var Params: TCreateParams); override; public constructor Create(AOwner: TComponent); override; published property AutoSelect; property AutoSize; property BiDiMode; property BorderStyle; property CharCase; property Color; property DragCursor; property DragKind; property DragMode; property Enabled; property HideSelection; property ImeMode; property ImeName; property MaxLength; property OEMConvert; property ParentBiDiMode; property ParentColor; property ParentFont; property ParentShowHint; property PopupMenu; property ReadOnly; property ShowHint; property TabOrder; property TabStop; property Text; property Visible; property OnChange; property OnClick; property OnContextPopup; property OnDblClick; property OnDragDrop; property OnDragOver; property OnEndDock; property OnEndDrag; property OnEnter; property OnExit; property OnKeyDown; property OnKeyPress; property OnKeyUp; property OnMouseDown; property OnMouseMove; property OnMouseUp; property OnStartDock; property OnStartDrag; property Anchors; property Constraints; end; procedure Register; implementation uses Forms; procedure Register; begin RegisterComponents('XP', [TPasswordEdit]); end; constructor TPasswordEdit.Create(AOwner: TComponent); const FavouredFonts: array[0..2] of String = ('Tahoma', 'Arial', 'MS Sans Serif'); var I: Integer; begin inherited; I := Low(FavouredFonts); while (I <= High(FavouredFonts)) and (Screen.Fonts.IndexOf(FavouredFonts[I]) < 0) do Inc(I); if I <= High(FavouredFonts) then Font.Name := FavouredFonts[I]; end; procedure TPasswordEdit.CreateParams(var Params: TCreateParams); begin inherited; Params.Style := Params.Style or ES_PASSWORD; end; end. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:11 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