Einzelnen Beitrag anzeigen

Benutzerbild von Sharky
Sharky

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

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

  Alt 12. Jun 2005, 09:02
Hai,

am einfachsten dürfte es wohl sein einfach die Ausgabe des Textes zu ändern
Wozu extra eine Stringliste verwalten wenn es doch nur darum geht das die Passwörter nicht angezeigt werden

Der Code geht davon aus das die Passwörter in der zweiten Spalte (SubItem = 1) stehen. Über CheckBox1 wird entschieden ob sie gezeigt werden oder nicht.
Delphi-Quellcode:
uses
  CommCtrl;

procedure TForm1.CheckBox1Click(Sender: TObject);
begin
  ListView1.Repaint;
end;

procedure TForm1.ListView1CustomDrawSubItem(Sender: TCustomListView;
  Item: TListItem; SubItem: integer; State: TCustomDrawState; var DefaultDraw: boolean);
var
  rect: TRect;
begin
  if (SubItem = 1) and (CheckBox1.Checked) then
  begin
    DefaultDraw := False;
    ListView_GetSubItemRect(Sender.Handle, Item.Index, SubItem, LVIR_BOUNDS, @rect);
    DrawText(Sender.Canvas.Handle,
      PChar('******'),
      Length('******'),
      rect,
      DT_SINGLELINE or DT_END_ELLIPSIS);
  end
  else
  begin
    DefaultDraw := True;
  end;
end;

procedure TForm1.ListView1Click(Sender: TObject);
begin
  Edit1.Text := ListView1.Items[ListView1.ItemIndex].SubItems[0];
end;
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat