![]() |
ListView Columns und OwnerDraw
Hi,
kann man die Columns einer ListView mit ViewStyle vsReport anders färben ? Wenn ja, wie ? Habe gegooglet und das gefunden:
Delphi-Quellcode:
Was ist HD_ITEM ? Das kennt mein Delphi nicht.
var HeaderHandle : HWND;
hdi : HD_ITEM; i : Integer; begin HeaderHandle := GetDlgItem(lv.Handle, 0); for i := 0 to lv.Columns.Count - 1 do begin hdi.mask := HDI_TEXT and HDI_FORMAT and HDI_WIDTH; hdi.fmt := HDF_LEFT and HDF_OWNERDRAW and HDF_STRING; hdi.cxy := Columns.Items[i].Width; hdi.cchTextMax := Columns.Items[i].Caption.Length(); hdi.pszText := Columns.Items[i].Caption; Header_SetItem(HeaderHandle, index, hdi^); end; |
Re: ListView Columns und OwnerDraw
Delphi-Quellcode:
uses CommCtrl;
|
Re: ListView Columns und OwnerDraw
Thx.
Ein Fehler ist noch übrig geblieben:
Delphi-Quellcode:
Header_SetItem(HeaderHandle, i, hdi^);
[Fehler] code.pas(215): Zeigertyp erwartet |
Re: ListView Columns und OwnerDraw
Vielleicht
Delphi-Quellcode:
?
Header_SetItem(HeaderHandle, i, ^hdi);
|
Re: ListView Columns und OwnerDraw
Delphi-Quellcode:
Header_SetItem(HeaderHandle, i, ^hdi);
[Fehler] Unit1.pas(216): Inkompatible Typen: '_HD_ITEMA' und 'Char' |
Re: ListView Columns und OwnerDraw
Hallo Nils,
das Dach (^) ist einfach überflüssig. Grüße vom marabu |
Re: ListView Columns und OwnerDraw
Danke, jetzt wird der Code schonmal kompiliert. Was muss ich noch machen, dass ich die Farben verändern kann ?
Delphi-Quellcode:
var HeaderHandle : HWND;
hdi : HD_ITEM; i : Integer; begin HeaderHandle := GetDlgItem(lv.Handle, 0); for i := 0 to lv.Columns.Count - 1 do begin hdi.mask := HDI_TEXT and HDI_FORMAT and HDI_WIDTH; hdi.fmt := HDF_LEFT and HDF_OWNERDRAW and HDF_STRING; hdi.cxy := lv.Columns.Items[i].Width; hdi.cchTextMax := Length(lv.Columns.Items[i].Caption); hdi.pszText := PChar(lv.Columns.Items[i].Caption); Header_SetItem(HeaderHandle, i, hdi); end; |
Re: ListView Columns und OwnerDraw
*push*
|
Re: ListView Columns und OwnerDraw
Hallo Nils,
dein Code setzt das Format HDF_OWNERDRAW, das Einfärben geschieht woanders. Ich vermute, dass da noch eine window procedure ist. Dort musst du bei der message WM_PAINT nachschauen. Grüße vom marabu |
Re: ListView Columns und OwnerDraw
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:38 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz