Avatar billede rkd-niffer Nybegynder
06. august 2003 - 18:00 Der er 1 kommentar og
1 løsning

Ændre highlightcolor på en TListView

Hvordan kan jeg ændre highlightcolor på en TListView til eks. rød ?
Avatar billede tolderlund Nybegynder
07. august 2003 - 13:20 #1
Sæt OwnerDraw til True (virker åbenbart kun ved ViewStyle = vsReport).
Lav så en OnDrawItem event:
procedure TForm1.ListView1DrawItem(Sender: TCustomListView;
  Item: TListItem; Rect: TRect; State: TOwnerDrawState);
begin
  with (Sender as TCustomListView).Canvas do
  begin
    if odSelected in State then
      Brush.Color := clRed
    else
      Brush.Color := clWindow;
    TextRect(Rect, Rect.Left, Rect.Top, Item.Caption);
  end;
end;
Avatar billede mha Nybegynder
07. august 2003 - 13:28 #2
Farven på valgte elementer bestemmes af brugerens "display settings". Du kan ændre disse for hele systemet ved at anvende SetSysColors API'et. Dette vil dog påvirke alle programmer, hvilket brugeren formodentlig ikke vil synes om.

Den bedste løsning er at skrive din egen CustomDraw procedure for at opnå det ønskede resultat. I Delphi 7 findes der et eksempel på ovenstående i \Demos\CustomDraw\
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester