I needed to do something similar. I handled it by requiring shift + mousewheel to zoom.
At design time, I set all MouseInteract items as false.
At runtime in the FormCreate I set... ImageEnView1.MouseWheelParams.Action := iemwVScroll;
and then handled the MouseWheelUp/Down events for ImageEnView1
//====================================================================
// Handles MouseWheel Up zoom interaction for ImageEnView1
// This inverts the default behavior to zoom out rather than in
// Default zoom is disabled, zoom now requires the ctrl key + wheel.
//====================================================================
procedure TForm1.ImageEnView1MouseWheelUp(Sender: TObject;
Shift: TShiftState; MousePos: TPoint; var Handled: Boolean);
begin
if ssCtrl in Shift then
begin
ImageEnView1.ZoomIn;
Abort;
end;
end;
//====================================================================
// Handles MouseWheel Down zoom interaction for ImageEnView1
// This inverts the default behavior to zoom in rather than out
// Default zoom is disabled, zoom now requires the ctrl key + wheel.
//====================================================================
procedure TForm1.ImageEnView1MouseWheelDown(Sender: TObject;
Shift: TShiftState; MousePos: TPoint; var Handled: Boolean);
begin
if ssCtrl in Shift then
begin
if ImageEnView1.Zoom > 100 then
ImageEnView1.ZoomOut;
Abort;
end;
end;