Zitat von
moelski:
Ich nutze in meiner Applikation eine Paintbox für xy Grafiken. Nun würde ich gerne die Zoomfunktion auf das Scrollrad legen. Aber wie zum Teufel kriege ich das Event zur Paintbox hin? Sowas gibbet da leider nicht
Ich nutze übrigens D6 SP2 falls das wichtig sein sollte.
Hier im Forum gab es auch schon mal einen Vorschalg, aber da werde ich nicht wirklich schlau raus ...
Du setzt einen Trackbar auf dein Formular, mit dem du den Zoomfaktor einstellen kannst.
Im OnChange-Event des Trackbars fragst du die Position ab und änderst deinen Zoomfaktor.
Der Trackbar reagiert übrigens schon direkt auf das Scrollrad, wenn der Trackbar fokusiert ist.
Für die anderen Fälle (Trackbar nicht im focus) schreibst du einen MessageHandler:
Delphi-Quellcode:
TForm1 = class(TForm)
TrackBar1: TTrackBar;
Edit1: TEdit;
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
procedure WMzoom(var msg:TMessage); message WM_MOUSEWHEEL;
end;
....
procedure TForm1.WMzoom(var msg: TMessage);
var
dist : Integer;
begin
dist := Smallint(msg.WParamHi);
trackbar1.Position := trackbar1.Position-(dist div WHEEL_DELTA);
end;