Super dass es so funktioniert!
Ich bin leider immer noch ein wenig verwundert. Die Funktionen verrichten ihre Arbeit zwar tadellos, kommentiere ich allerdings alles heraus was sich auf das ListView bezieht, dann bewegt sich der Scrollbalken wieder!
Code: Alles auswählen
function TMyListView.DoMouseWheelDown(Shift: TShiftState; MousePos: TPoint): boolean;
begin
form1.Label1.Caption := 'Mausrad runter';
{
if lv.Selected.Index + 1 < lv.Items.Count then
begin
LV.Items[LV.Selected.Index + 1].Selected := True;
LV.Items[LV.Selected.Index].Focused := True;
LV.Selected.MakeVisible(True);
end;
}
end;
Erste Vermutung war, dass der Srollbalken bewegt wird, dann aber sofort der nächste/vorherige Eintrag selektiert wird. Ich dachte, dass man darurch die Bewegung des Scrollbalkens nicht sieht.
Aber denkste! Entferne ich den Kommentar nur vom
, bleibt der Balken wo er ist.
Code: Alles auswählen
function TMyListView.DoMouseWheelDown(Shift: TShiftState; MousePos: TPoint): boolean;
begin
form1.Label1.Caption := 'Mausrad runter';
if lv.Selected.Index + 1 < lv.Items.Count then
begin
//LV.Items[LV.Selected.Index + 1].Selected := True;
//LV.Items[LV.Selected.Index].Focused := True;
//LV.Selected.MakeVisible(True);
end;
end;
Woher kommt dieses Verhalten?
@Pluto: Meinst du WMMouseWheel in TControl? Ich will ja dort nichts überschreiben, wie kann ich also so ein Event abfangen und meinen eigenen Code ausführen? Ich hab da gar keine Ahnung von ...
Gruß, Jochen