Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#5

AW: Ereignis für Scrollbalken in Scrollbox

  Alt 19. Jan 2019, 14:36
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

Geändert von EWeiss (19. Jan 2019 um 18:59 Uhr)
  Mit Zitat antworten Zitat