Sorry, aber so ausführlich ... ...
Habe inzwischen 2 Std. nach WM_HSCROLL etc. gegoogelt und auch in der Delphi-Hilfe nachgesehen aber mir geht einfach kein Licht auf.
Wenn ein Scroll Event in einem Programm oder (System) ausgelöst wird geht das Event an die Windows Message WM_HSCROLL wenn es sich um eine Horizontale Scroll bar handelt.
Unter WM_HSCROLL deiner WinProc kannst du dann prüfen ob dein Fenster bzw. die Scrollbox ein Event ausgelöst hat.
Ich hoffe du weist wie man die WinProc aus deiner Class heraus ableitet!
Delphi-Quellcode:
WM_HSCROLL:
begin
if (LoWord(wP) = SB_THUMBPOSITION)
then // der Scrollbalken wurde bewegt\angeklickt
begin
if Handle = Scrollbox.Handle
then
begin
MeineHScrollThumpPosition := HiWord(wP);
// >> Mach was mit meiner Value !!
end;
end;
end;
Hier getippt.. Habe die TScrollbox noch nicht verwendet, habe meine eigene, von daher kein gewähr dass das mit dem Scrollbox.Handle so stimmt.
Über LParam kommst du an die ID des Thump was verwendet wird wenn du drauf klickst.
ControlID := Lp;
vorausgesetzt Lp ist in deiner Winproc als LPARAM definiert.
function WndProc(WinHandle: HWND; Msg: UINT; wP: WParam; lP: LParam): LRESULT; stdcall;
Eventuell reicht es auch aus nur die WM_HSCROLL Message abzuleiten
siehe dazu
gruss