Problem z zaznaczeniem w Listview

0

Witam,

Mam TListview ustawione jako vReport. Gdy zaznaczę jakiś wiersz, podświetla się on na kolor.
Gdy teraz to okno z listview dam na nieaktywne, zaznaczenie dalej jest, ale wiersz nie jest podświetlony. Gdy przywrócę focus na to okno zaznaczenie się pojawia.
Czy da się tak zrobić, aby zaznaczenie było podświetlone, nawet gdy okno nie jest aktywne?
W mojej aplikacji po zaznaczeniu wiersza i naciśnięciu przycisku usuń wiersz pojawia się messagebox z pytaniem czy jest się pewnym usunięcia i wtedy nie widać, ktory wiersz jest zaznaczony, bo focus jest na messagebox. W messageboxie wpisuję nr wiersza, ale chciałbym aby było widać wiersz :)

0

Będziesz musiał samemu rysować wiersze. Szukaj: OwnerDraw

0

Spróbuj z poniższym jednym z przykładów:

procedure TForm1.ListView1CustomDrawItem(Sender: TCustomListView;
  Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
with ListView1.Canvas do
     begin
     if Item.Selected then
        begin
        Brush.Color := clHighLight;
        Font.Color := clHighLightText;
        Font.Style := [fsBold];
        end;
     end;
DefaultDraw := True;
end;


{lub}

{UWAGA !
Nie jest możliwe podświetlenie wielu pozycji. Nie działa opcja SelectAll podświetlające wszystkie pozycje.}
procedure TFormMAC.ListView1AdvancedCustomDrawItem(Sender: TCustomListView;
  Item: TListItem; State: TCustomDrawState; Stage: TCustomDrawStage;
  var DefaultDraw: Boolean);
begin
 if Item.Selected then
   begin
    ListView1.Canvas.Brush.Color := $0053D2FF;
    ListView1.Canvas.Font.Color  := clBlack;
    ListView1.Selected           := Item.ListView.DropTarget;
   end
 else
   begin
    ListView1.Canvas.Brush.Color := ListView1.Color;
   end;
end;
0

Ustaw coś takiego jak

 HideSelection := False
0
JacobTheLiar napisał(a)

Ustaw coś takiego jak

 HideSelection := False

Dzięki, nie zauważyłem tego :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1