Dann musst du das vermutlich über OwnerDraw selbst implementieren.
Jep.
Aber für einen nicht versierten Programmierer ohne tiefere Kenntnisse über die
WinApi fast nicht umsetzbar.
Dazu kommt dann noch der Mix zwischen
VCL\
NonVCL
Habe mich daran versucht.. funktioniert gut aber es war für einen
NICHT Informatiker (Hobby Programmierer) gar nicht so einfach das halbwegs zufriedenstellend umzusetzen.
Als Anregung.
Mein ListView basiert auf Interface und wird auf diese weise initialisiert.
Und anschließend alles selbst gezeichnet. (In einer
DLL)
Delphi-Quellcode:
LVPlayList := CTRL_ListViewCreate;
LVPlayList.SelectedImg := SKAERO_FOLDER + 'ListView\ListSelect.png';
LVPlayList.HeaderArrowImg := SKAERO_FOLDER + 'ListView\HeaderArrow.png';
LVPlayList.VTrack := SKAERO_FOLDER + 'ListView\VTrack.png';
LVPlayList.VThumb := SKAERO_FOLDER + 'ListView\VThumb.png';
LVPlayList.VBtnUp := SKAERO_FOLDER + 'ListView\VBtnUp.png';
LVPlayList.VBtnDown := SKAERO_FOLDER + 'ListView\VBtnDown.png';
LVPlayList.HTrack := SKAERO_FOLDER + 'ListView\HTrack.png';
LVPlayList.HBtnRight := SKAERO_FOLDER + 'ListView\HBtnRight.png';
LVPlayList.HThumb := SKAERO_FOLDER + 'ListView\HThumb.png';
LVPlayList.HBtnLeft := SKAERO_FOLDER + 'ListView\HBtnLeft.png';
LVPlayList.Sizer := SKAERO_FOLDER + 'ListView\Sizer.png';
LVPlayList.ArrowImgStateMax := 2;
LVPlayList.Left := 19;
LVPlayList.Top := 65;
LVPlayList.Width := MainWidth - 242;
LVPlayList.Height := MainHeight - 106;
LVPlayList.DlgItemID := ID_PLAYLIST;
LVPlayList.ItemHeight := 23;
LVPlayList.HeaderHeight := 20;
LVPlayList.CreateWindow(hMain);
LVPlayList.SetFont(14, PWideChar(SKAERO_TEXTFONT), FontStyleBoldItalic,
SKAERO_ACTIVECAPTION, SKAERO_INACTIVECAPTION, True, -1);
LVPlayList.InsertColumn(LVPlayList.Handle, 0, 'Nr.', 50, False, sortInt);
LVPlayList.InsertColumn(LVPlayList.Handle, 1, 'Time', 55, False, sortString);
LVPlayList.InsertColumn(LVPlayList.Handle, 2, 'Title', 250, True, sortString);
LVPlayList.InsertColumn(LVPlayList.Handle, 3, 'Artist', 250, False, sortString);
LVPlayList.InsertColumn(LVPlayList.Handle, 4, 'Album', 70, False, sortString);
LVPlayList.InsertColumn(LVPlayList.Handle, 5, 'Path', 250, False, sortString);
SKAERO_SetAnchorMode(LVPlayList.Handle, ANCHOR_HEIGHT_WIDTH);
SKAERO_SetZorder(LVPlayList.Handle, HWND_TOP);
Aber es sollte dich niemand davon abhalten es einfach zu versuchen.
Viel glück dabei.
EDIT:
Zitat:
PS: Könnte man evtl. als Workaround ein Bild in eine Spalte geben und über Klick Event das Bild wechseln?
Ja das geht wenn man sich der LVS_EX Styles bedient siehe
LVS_EX_SUBITEMIMAGES