AGB  ·  Datenschutz  ·  Impressum  







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

passwörter (***) in der listview?

Ein Thema von 100nF · begonnen am 11. Jun 2005 · letzter Beitrag vom 12. Jun 2005
Antwort Antwort
Seite 2 von 2     12   
100nF

Registriert seit: 7. Nov 2004
639 Beiträge
 
#11

Re: passwörter (***) in der listview?

  Alt 12. Jun 2005, 09:19
hi Sharky,

vielen dank für deine antwort!!
si funktioniert FAST...

also das erste problem ist noch, dass als passwort immer ***** angezeigt wird. das problem dabei ist, dass die länge nicht mit der länge des passworts überrein simmt. ich habe schon ein bisschen herumprobiert, aber ich habe es nicht rausgefunden, wie man das ändern lönnte.

das zweite problem ist, dass der text der spalten hinter der passwort-spalte fett ist. ich kann mir einfach nicht erklären, wieso...

ich wäre sehr dankbar, wenn du eine lösung dazu hättest

edit: ich glaube die spalten hinter der passwort-spalte werden nicht fett, sondern eine size grösser, und die schriftart wird geändert.


gruss
urbanbruhin
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#12

Re: passwörter (***) in der listview?

  Alt 12. Jun 2005, 09:25
Ich würde es über die OwnerData-Property versuchen. Dann musst Du das OnData-Eregnis angeben, das für jedes ListViewItem aufgerufen wird. Dadrin füllst Du alle Werte des ListItems und die entsprechende Spalte mit '*' oder dem Klartext.
Delphi-Quellcode:
Procedure ListView1Data(Sender: TObject; Item: TListItem);
Begin
  Item.Caption := MyUserData[Item.Index].UserName;
  Item.ImageIndex := MyUserData[Item.Index].UserGroupIndex; // <-- Verschiedene bmps für Usergruppen z.B.
  If UserWantsToSeePassword Then
    Item.SubCaptions.Add(MyUserData[Item.Index].UserPassword)
  Else
    Item.SubCaptions.Add('****************');
End;
Das OnChange-Event der 'Klartextpasswärter anzeigen'-Checkbox macht dann nur noch das:
Delphi-Quellcode:
Procedure Checkbox1Change (Sender : TObject);
Begin
  UserWantsToSeePassword := Checkbox1.changed;
  ListBox1.Invalidate;
End;
Füllen brauchst Du die Listview dann nicht mehr, du setzt nur noch
ListView1.Items.Count = MyUserData.Count Beim Einfügen und Löschen von MyUserData-Einträgen setzt Du die Count-Eigenschaft einfach neu. Nochmal: Die ListView.Items fässt Du nie direkt an!

IMHO sollten die OnDraw-Events nur dann verwendet werden, wenn man etwas am Layout ändern will. z.B. Progressbars in Spalten reinmalen oder so.
Aber nix gegen die Lösung von Sharky, denn viele Wege führen zum Ziel

@urbanbruhin: Ich würde die Anzahl der * nicht mit der Länge des Passwortes gleichsetzen, weil man dann gleich sehen kann, wer ein 'schwaches' Passwort hat.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
12. Jun 2005, 09:30
Dieses Thema wurde von "alcaeus" von "Sonstige Fragen zu Delphi" nach "VCL / WinForms / Controls" verschoben.
Es geht um eine VCL-Komponente, deshalb schiebe ich es mal in die entsprechende Sparte...
100nF

Registriert seit: 7. Nov 2004
639 Beiträge
 
#14

Re: passwörter (***) in der listview?

  Alt 12. Jun 2005, 09:43
hi alzaimar,

danke für deine antwort, aber irgendwie bekomme ich die nicht zum laufen. ich blick auch nicht durch, wie sie funktionieren sollte.

trotzdem danke.

Zitat:
Ich würde die Anzahl der * nicht mit der Länge des Passwortes gleichsetzen, weil man dann gleich sehen kann, wer ein 'schwaches' Passwort hat.
du hast da etwas falsch verstanden. diese passwörter kann nur der benutzer sehen, dem sie auch gehören. dieser loggt sich mit einem passwort ein, und bekommt dann nur seine passwörter zu sehen, und keine anderen. falls er eines vergessen hat, kann er die passwörter anzeigen lassen.


gruss
urbanbruhin
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#15

Re: passwörter (***) in der listview?

  Alt 12. Jun 2005, 10:08
Hab gerade für ein anderes Forum (die Konkurrenz ) ein Beispielprojekt mit OwnerData-Listviews erstellt. Schau's Dir an.
Achte darauf, das die ListView 10.000 Einträge hat. Geht auch mit 2.000.000.000! Dort ist auch Code, um die Checkbox-Funktionalität, die normalerweise vorhanden ist, nachzubilden.

Ich finde das Verfahren mit OwnerData=True aufgeräumt, weil das Befüllen der ListItems zentral an einer Stelle stattfindet und strikt zwischen Daten und Darstellung getrennt wird.

Zu den '*': Wenn nur der Anwender seine Passwörter sehen kann, wozu dann mit '*' verstecken? Wegen der Spione, die ihm über die Schulter schauen? Na dann doch erst Recht verschleiern... Aber, is deine Sache (wie sowieso Alles andere auch )
Angehängte Dateien
Dateityp: rar listview_155.rar (1,6 KB, 18x aufgerufen)
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#16

Re: passwörter (***) in der listview?

  Alt 12. Jun 2005, 10:24
Und hier noch einmal das ganze im OnDrawSubItem

Delphi-Quellcode:
procedure TForm1.ListView1CustomDrawSubItem(Sender: TCustomListView;
  Item: TListItem; SubItem: integer; State: TCustomDrawState; var DefaultDraw: boolean);
var
  rect: TRect;
  Text: string;
begin
  DefaultDraw := False;
  if (SubItem = 1) and (CheckBox1.Checked) then
  begin
    Text := StringOfChar('*',Length(Item.SubItems[0]))
  end
  else
  begin
    Text := Item.SubItems[SubItem - 1]
  end;
  ListView_GetSubItemRect(Sender.Handle, Item.Index, SubItem, LVIR_BOUNDS, @rect);
  (Sender as TListView).Canvas.TextRect(rect, Text);
end;
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
100nF

Registriert seit: 7. Nov 2004
639 Beiträge
 
#17

Re: passwörter (***) in der listview?

  Alt 12. Jun 2005, 10:26
hi,

mit dem anhang konnte ich leider nicht viel anfangen, da ich keine checkboxes in der listview habe...

Zitat:
Wenn nur der Anwender seine Passwörter sehen kann, wozu dann mit '*' verstecken?
es könnte ja mal sein, dass jemand die tür reinkommt... und wenn man nur ein passwort hinzufügen will, braucht man ja die anderen passwörter nicht zu sehen...

auf jeden fall ist es so sicherer
  Mit Zitat antworten Zitat
100nF

Registriert seit: 7. Nov 2004
639 Beiträge
 
#18

Re: passwörter (***) in der listview?

  Alt 12. Jun 2005, 10:50
@Sharky :

dein code funktioniert wunderbar!!
ein nachteil ist, dass nicht mehr die ganze zeile markiert werden kann, aber ich glaube dass lass ich sein.

vielen dank!!

MFG
urbanbruhin
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#19

Re: passwörter (***) in der listview?

  Alt 12. Jun 2005, 11:14
Zitat von urbanbruhin:
...aber ich glaube dass lass ich sein. ...
Hmmm.... dann musst Du die "markierung" einfach selber zeichnen
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
100nF

Registriert seit: 7. Nov 2004
639 Beiträge
 
#20

Re: passwörter (***) in der listview?

  Alt 12. Jun 2005, 11:18
Zitat:
Hmmm.... dann musst Du die "markierung" einfach selber zeichnen
das habe ich auch schon probiert, aber in diesem gebiet bin ich halt kein profi. darum habe ichs auch nicht hinbekommen.

wenn du das auch noch programmieren würdenst, wäre ich sehr dankbar!

zur information:
die listview hat vier spalten. die hinteren drei werden nicht markiert.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 09:13 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