Ich habe es jetzt mal so versucht.
Das Problem ist mal wieder .. es geht dann wieder nicht.
Delphi-Quellcode:
procedure TSkinListView.SetTopItem(hwndLV: HWND; nItem: Integer);
var
TopIndex: Integer;
ItemIndex: TLVItemIndex;
Rect: TRect;
begin
ListView_EnsureVisible(hwndLV, nItem, true);
TopIndex := ListView_GetTopIndex(hwndLV);
ItemIndex.iItem := TopIndex;
ItemIndex.iGroup := -1;
ListView_GetItemIndexRect(hwndLV, ItemIndex, nItem, LVIR_BOUNDS, Rect);
ListView_Scroll(hwndLV, Rect.Left, Rect.Top);
if Visible then
SetFocus(hwndLV);
end;
Kann jemand sehen was nicht stimmt?
Einmal ist der Eintrag unten selektiert und manchmal oben.
gruss