Einzelnen Beitrag anzeigen

NicoDE
(Gast)

n/a Beiträge
 
#15

Re: Hamsterlaufrad ääh Mauslaufrad

  Alt 24. Jun 2004, 18:37
Zitat von Schneck:
Woher weiß wer sowas?
Mischung aus Zufall, Erfahrung und in-DP-gelesen

Zum Problem: sieh Dir mal folgendes Beispiel an...
Delphi-Quellcode:
procedure TZeichenBlatt.CMMouseWheel(var Message: TCMMouseWheel);
var
  MousePos: TPoint;
  IsNeg: Boolean;

  procedure MouseWheelUp();
  begin
    //... DoScroll(WHEEL_DELTA);
  end;

  procedure MouseWheelDown();
  begin
    //... DoScroll(-WHEEL_DELTA);
  end;

begin
  MousePos := SmallPointToPoint(Message.Pos);
  Inc(FWheelAccumulator, Message.WheelDelta);
  while (Abs(FWheelAccumulator) >= WHEEL_DELTA) do
  begin
    IsNeg := FWheelAccumulator < 0;
    FWheelAccumulator := Abs(FWheelAccumulator) - WHEEL_DELTA;
    if (IsNeg) then
    begin
      if (FWheelAccumulator <> 0) then
        FWheelAccumulator := -FWheelAccumulator;
      MouseWheelDown();
    end
    else
      MouseWheelUp();
  end;
end;
...wie man schon an der Nomenklatur erkennt, ist FWheelAccumulator eine private Variable der Klasse.


Gruss Nico

ps: hab hier kein Delphi zum Testen, sorry
  Mit Zitat antworten Zitat