Einzelnen Beitrag anzeigen

Schneck

Registriert seit: 22. Jun 2004
18 Beiträge
 
Delphi 7 Personal
 
#14

Re: Hamsterlaufrad ääh Mauslaufrad

  Alt 24. Jun 2004, 18:18
Hallo,
großes Dankeschön für den coolen geheimen Messages-Tipp, fetzt funzt es FAST! Da ist aber noch ein großes Problem: Auf das Mauslaufraddrehen reagiert nun endlich das Programm, aber NICHT wenn ich genau über der Komponente TZeichenBlatt bin, sondern irgendwo weiter oben links, ich bin dann nichteinmal mehr über dem Formular, aber beim MausWheelen reagierte es fröhlich weiter und weiter rechts und unten geht nix?! Weis da noch jemand Hilfe? Mein orginaler Quelltext schaut jetzt so aus:

Delphi-Quellcode:
...
uses
  SysUtils, Classes, Controls, ExtCtrls, ... Messages;
...
type
  TZeichenBlatt = class(TImage)
  private
...
    procedure WMMouseWheel(var Message: TWMMouseWheel); message WM_MOUSEWHEEL;
    procedure CMMouseWheel(var Message: TCMMouseWheel); message CM_MOUSEWHEEL;
...
procedure TZeichenBlatt.WMMouseWheel(var Message: TWMMouseWheel);
begin
  with TMessage(Message) do
  begin
    TCMMouseWheel(Message).ShiftState := KeysToShiftState(Message.Keys);
    Result := Perform(CM_MOUSEWHEEL, WParam, LParam);
  end;
end;

procedure TZeichenBlatt.CMMouseWheel(var Message: TCMMouseWheel);
begin
  Canvas.TextOut(100,20,Format('WheelDelta = %d',[Message.WheelDelta]));
  Canvas.TextOut(100,50,Format('xPos = %d; yPos = %d',[Message.XPos,Message.YPos]));

end;
...
Hat jemand vielleicht auch einen guten Link, wo ein FastAnfänger auf verständliche Weise etwas über das da lernen kann, was da oben im Quelltext steht. Die Messages-Unit ist nichteinal in der Delphi-Hilfe enthalten; und ich hab keine Ahnung was die WM... und CM... und LParam und und und sind. Woher weiß wer sowas?

Gruß Schneck
  Mit Zitat antworten Zitat