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.