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