Ich hab bei mir ein TImage und löse das Ganz so:
Delphi-Quellcode:
procedure TForm1.FormMouseWheelDown(Sender: TObject; Shift: TShiftState;
MousePos: TPoint; var Handled: Boolean);
begin
//Bild zoomen
if ssCtrl in Shift then begin
Image1.Left := Round(Image1.Left - (((Image1.Width * 1.1) - Image1.Width) / 2));
Image1.Top := Round(Image1.Top - (((Image1.Height * 1.1) - Image1.Height) / 2));
Image1.Width := Round(Image1.Width * 1.1);
Image1.Height := Round(Image1.Height * 1.1);
end;
end;
procedure TForm1.FormMouseWheelUp(Sender: TObject; Shift: TShiftState;
MousePos: TPoint; var Handled: Boolean);
begin
//Bild verkleinern
if ssCtrl in Shift then begin
Image1.Left := Round(Image1.Left + (((Image1.Width * 1.1) - Image1.Width) / 2));
Image1.Top := Round(Image1.Top + (((Image1.Height * 1.1) - Image1.Height) / 2));
Image1.Width := Round(Image1.Width / 1.1);
Image1.Height := Round(Image1.Height / 1.1);
end;
end;
Ja der Zoom ist ein wenig verbuggt, aber die Funktion funktioniert auf jeden Fall. Es wird gezoomt wenn Form1 den Focus hat und ich STRG + Mausrad drücke.