Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.169 Beiträge
 
Delphi 12 Athens
 
#9

Re: ListView mit PasswordChar

  Alt 8. Mai 2008, 23:54
3. Spalte mit "*"

Anzahl der "*" = Length(SubItemText)

Delphi-Quellcode:
// 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;
dafür muß nichtmal der Text wo anders gespeichert werden, da nur die Anzeige manipuliert wird.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat