Ok, hier ein kleiner Denkanstoß, wie man das mit den Tasten regeln könnte:
Delphi-Quellcode:
procedure TListBoxEx.WMKeyDown(var Message: TWMKey);
var
ItemCount: Integer;
ScrollPos: Integer;
begin
ScrollPos := 0;
ItemCount := ClientHeight div ItemHeight;
if Assigned(FOnScroll) then
case Message.CharCode of
VK_DOWN: if Succ(ItemIndex - TopIndex) = ItemCount then
FOnScroll(Self, scLineDown, ScrollPos);
VK_UP: if ItemIndex = TopIndex then
FOnScroll(Self, scLineUP, ScrollPos);
VK_HOME: if TopIndex > 0 then
FOnScroll(Self, scTop, ScrollPos);
VK_END: if (Count - TopIndex) > ItemCount then
FOnScroll(Self, scBottom, ScrollPos);
end;
inherited;
end;
Diese Methode ist noch nicht vollständig (Page-Up, Page-Down) und
feuert auch noch nicht richtig, aber das dürfte dir schonmal helfen.
MfG
Stevie
Jippie, mein 1000. Beitrag!!! *g*