[Delphi 5] 'OnMouseWheelDown' bei tImage

Die Komponente tImage besitzt leider kein OnMouseWheelDown Ereignis. Ist es dennoch möglich auf die Bewegung (Abwärts) des Rades zu reagieren, wenn eine tImage Komponente den Focus besitzt? Falls ja : wie?

Die Komponente tImage besitzt leider kein OnMouseWheelDown
Ereignis. Ist es dennoch möglich auf die Bewegung (Abwärts)
des Rades zu reagieren, wenn eine tImage Komponente den Focus
besitzt? Falls ja : wie?

TImage-Komponenten können doch gar nicht den Fokus besitzen?

‚MousePreview‘?
Kann man denn auf die Rad-Bewegung allgemein reagieren? D.h. unabhängig davon welche Komponente den Fokus besitzt?
(Wie es z.B. bei Tasten mit KeyPreview möglich ist?)

Kann man denn auf die Rad-Bewegung allgemein reagieren? D.h.
unabhängig davon welche Komponente den Fokus besitzt?
(Wie es z.B. bei Tasten mit KeyPreview möglich ist?)

Nein, eine allgemeine „Auf-Mausrad-Reagiermöglichkeit“ gibt es definitiv nicht. „Nachprogrammierbar“ wäre sie sicher, fragt sich nur, ob dazu wirklich eine Notwendigkeit besteht. Alles, was in Delphi scrollbar ist (= alles, was der Klasse „TScrollingWinControl“ angehört, also z. B. alle Formulare und v. a. TScrollBox), verfügt ja über die „OnMouseWheel“-Events.

Leider nutzte ich tImage für die Darstellung. Trotzdem Danke für die Hilfe.

Nein, eine allgemeine „Auf-Mausrad-Reagiermöglichkeit“ gibt es
definitiv nicht. „Nachprogrammierbar“ wäre sie sicher, fragt
sich nur, ob dazu wirklich eine Notwendigkeit besteht. Alles,
was in Delphi scrollbar ist (= alles, was der Klasse
„TScrollingWinControl“ angehört, also z. B. alle Formulare und
v. a. TScrollBox), verfügt ja über die „OnMouseWheel“-Events.

Leider nutzte ich tImage für die Darstellung. Trotzdem Danke
für die Hilfe.

Mhh, also ich hoffe, Dir ist die Rollenverteilung der Komponenten klar. Wenn Du 'ne Bitmap darstellen willst, dann verwendest Du dazu i. a. 'ne TImage-Komponenten, denn zu diesem Zweck ist sie da. Mit Scrollen hat sie dagegen nix am Hut, denn dafür gibt’s ja die TScrollBox-Klasse. Die wiederum kann praktisch nix außer scrollen, dafür aber alles, was sie enthält.

Wenn Du also z. B. ne 800x600 große Bitmap in einem Bereich von 500x300 Pixeln darstellen willst mit der Möglichkeit, darin herumzuscrollen, setzt Du ne TImage-Komponente mit Width=800 und Height=600 in ne TScrollBox mit Width=500 und Height=300 (Einzelheiten zu den Property-Einstellungen siehe Online-Hilfe, die hab ich jetzt auch nicht gerade im Kopf). Anschließend mußt Du natürlich noch die OnMouseWheel-Events der Scrollbox Deinen Vorstellungen entsprechend bearbeiten.

Hilft Dir das vielleicht weiter?

Ich benutze tImage zur Darstellung, möchte diese jedoch nicht scrollen, sondern nur auf den „Versuch“ dazu reagieren.
Die Komponente tScrollBox hilft mir nun dazu, indem ich sie verstecke und ihr den Fokus übergebe. Auf das „OnMouseWeel“-Ereignis kann ich nun die Darstellung ändern.
Dies ist bestimmt nicht die schönste Lösung, aber es funktioniert.
Nochmal vielen Dank für die Hilfe.