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"