Hallo. Ich möchte eine Image-Komponente zur Laufzeit bei Ereignis OnMouseDown verschieben, wie man das überall im Internet nachlesen kann (z.B. http://members.kr.inter.net/khouse/3kdt/ mit „Move“ und „components“ als Suchbegriff).
(gebunden an eben das Ereignis OnmouseDown der Komponente
Image)
Der Benutzer soll also das Image mit der Maus anfassen und zur
Laufzeit an einen anderen Ort innerhalb des Formulars
verschieben können.
Das Problem: Mit den Komponenten Edit, Label und Button
funktionert’s, aber nicht mit Image oder Label.
Den Grund dafür erkennst Du sofort, wenn Du Dir den Hierarchiebaum der VCL anguckst (siehe z. B. E. Warken, Delphi 5): Images sind im Gegensatz zu Edits, Labels und Buttons einfach keine WinControls (sie sind damit also auch keine echten Windows-Fenster mit Handles usw.). Die TImage-Klasse sowie auch die TBevel-, TSpeedButton-, TShape-, TPaintBox-Klasse und noch einige andere sind alle von TGraphicControl abgeleitet, und TGraphicControl hat TControl als Vorfahr. TWinControl stammt ebenfalls von TControl ab.
Deine Methode funktioniert nur mit Objekten der Klasse TWinControl.
Ratsuchend, Jens.
Sich auf irgendeine Art von Feedback freuend
Martin