Einzelnen Beitrag anzeigen

bernie110

Registriert seit: 13. Sep 2004
Ort: Uetersen
27 Beiträge
 
Delphi XE6 Professional
 
#6

Re: Scrollrad und Touchpad-Bildlauf

  Alt 18. Mai 2005, 09:34
Zitat von marabu:
Wenn dein mouse wheel rechts und unten nicht erkannt wird, dann liegt das daran, dass du den Rahmen der Scrollbox nicht berücksichtigst. [...] Korrigier einfach das Rect, welches du für die Funktion ptInRect() übergibst.

marabu
Hallo marabu,
in Deinem Beispiel stand u.a.
Delphi-Quellcode:
procedure TMainForm.FormMouseWheelDown(Sender: TObject; Shift: TShiftState;
  MousePos: TPoint; var Handled: Boolean);
begin
  if PtInRect(ScrollBox.ClientRect, ScreenToClient(MousePos)) then
    ScrollBoxMouseWheelDown(Sender, Shift, MousePos, Handled);
end;

procedure TMainForm.FormMouseWheelUp(Sender: TObject; Shift: TShiftState;
  MousePos: TPoint; var Handled: Boolean);
begin
  if PtInRect(ScrollBox.ClientRect, ScreenToClient(MousePos)) then
    ScrollBoxMouseWheelUp(Sender, Shift, MousePos, Handled);
end;
Wenn ich nun statt der "ScrollBox.ClientRect" die ClientRect des Formulars einsetze, also
Delphi-Quellcode:
procedure TMainForm.FormMouseWheelDown(Sender: TObject; Shift: TShiftState;
  MousePos: TPoint; var Handled: Boolean);
begin
  if PtInRect(Form.ClientRect, ScreenToClient(MousePos)) then
    ScrollBoxMouseWheelDown(Sender, Shift, MousePos, Handled);
end;

procedure TMainForm.FormMouseWheelUp(Sender: TObject; Shift: TShiftState;
  MousePos: TPoint; var Handled: Boolean);
begin
  if PtInRect(Form.ClientRect, ScreenToClient(MousePos)) then
    ScrollBoxMouseWheelUp(Sender, Shift, MousePos, Handled);
end;
schreibe, funktioniert es, da nun nicht mehr nur die Größe der Scrollbox auf dem Formular für die Mausaktion erkannt wird, sondern das ganze Formular.

Zitat von marabu:
Funktioniert virtual scrolling mit irgendeiner Anwendung?
Beim MS-Explorer und - glaube ich - so ziemlich allen anderen käuflich erwerbbaren Programmen wird ein Bildlauf ausgelöst. Hier sieht es auch so aus, dass der Mauszeiger dabei auf den Scrollbalken springt.
Den Treiber habe ich noch nicht aktualisiert.

Gruß Bernie110
  Mit Zitat antworten Zitat