![]() |
ListView mit PasswordChar
Tag Leute.
Ich suche eine Möglichkeit, wie ich bequem (*) Logindaten in einer ListView speichern kann. D.h. ich habe drei Spalten (Seite|Benutzer|Passwort) und möchte, dass die Passwort-Spalte mit irgendwelchen "Dots" ausgefüllt wird (=> TEdit.PasswordChar). (*) Ich könnte natürlich auch die Dots manuell reinschreiben und die Passwörter in eine StringList o.ä. speichern und laden. Wär aber etwas fummelich, darum wollt ich erstmal sichergehen, dass es da nichts Komfortableres gibt. :wink: Danke und Gruß, kumpel |
Re: ListView mit PasswordChar
Hi Kumpel,
welchen Sinn macht eine Spalte für das Kennwort in einer Listenansicht, wenn der Inhalt dort garnicht angezeigt werden soll? Eine Anzeige wie "vorhanden" bzw. "fehlt" finde ich da informativer. Und sobald du eine Detailansicht öffnest, hast du ja auch wieder ein normales Edit-Feld zur Verfügung, bei dem du die Eigenschaft PasswordChar nutzen kannst. Grüße vom marabu |
Re: ListView mit PasswordChar
Den einzigen Sinn sehe ich im einfachen Speichern/Abfragen der Passwörter.
Da ich nach den passenden Benutzerdaten per Schleife suche, wäre es eben nur eine Zeile mehr Code:
Delphi-Quellcode:
for i := 0 to lvPass.Items.Count - 1 do
begin if lvPass.Items[i].Caption = Seite then begin Benutzer:=lvPass.Items[i].SubItems[0]; Passwort:=lvPass.Items[i].SubItems[1]; // <<--- end; end; Zitat:
Und die Daten können nicht geändert werden, also ReadOnly (falls das weiterhilft)! |
Re: ListView mit PasswordChar
Hi,
Zitat:
Zitat:
Freundliche Grüße |
Re: ListView mit PasswordChar
Okay, da hab ich mich wohl falsch ausgedrückt. Die Daten speichere ich natürlich bei jeder Änderung der Liste (verschlüsselt bzw. verschleiert) extern ab und lade sie bei jedem Programmstart.
Zitat:
|
Re: ListView mit PasswordChar
Trotzdem solltest du innerhalb deines Programmes die Speicherung & Darstellung der Daten voneinander trennen. Die Daten sollten "im Hintergrund" in deinem Programm verwaltet und von dort aus in die ListView geladen werden.
|
Re: ListView mit PasswordChar
Ich habe das mit dem Edit mal versucht bei meinem Password Saver, ich kann nur sagen es geht nicht, also wenn ein Edit PasswordChar hat ist es in der Listview trotzdem "normal".
|
Re: ListView mit PasswordChar
Du könntest ja mal mit dem VST rumspielen, mit dem ist sowas sicher umsetzbar...
|
Re: ListView mit PasswordChar
3. Spalte mit "*"
Anzahl der "*" = Length(SubItemText)
Delphi-Quellcode:
dafür muß nichtmal der Text wo anders gespeichert werden, da nur die Anzeige manipuliert wird.
// ListView1.OnCustomDrawSubItem
procedure TForm1.ListView1CustomDrawSubItem(Sender: TCustomListView; Item: TListItem; SubItem: Integer; State: TCustomDrawState; var DefaultDraw: Boolean); var tmpRect : TRect; iWidth, i : Integer; tmpTextOut : String; begin if SubItem <> 2 then exit; tmpRect := Item.DisplayRect(drBounds); if (cdsFocused in State) and (cdsSelected in State) then begin Sender.Canvas.Brush.Color := clBlue; Sender.Canvas.Font.Color := clWhite; end; iWidth := 0; for i := 0 to SubItem - 1 do Inc(iWidth, Sender.Column[i].Width); tmpTextOut := StringOfChar('*', Length(Item.SubItems[SubItem - 1])); Sender.Canvas.TextOut(tmpRect.Left + iWidth + 5, tmpRect.Top, tmpTextOut); DefaultDraw := False; end; |
Re: ListView mit PasswordChar
Hallo Frank,
Zitat:
Ich bin aber noch immer der Auffassung, dass eine solche Spalte in einer Listenansicht wegen des fehlenden Informationsgehaltes reine Platzverschwendung ist. Freundliche Grüße |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:31 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