// Wenn man auf einem Control, sagen wir Button2, die linke Maustaste drückt
// und dann die Maus mit gedrückt gehaltener Taste weiterzieht, verläßt der
// Mauspfeil irgendwann den Button. Trotzdem reagiert das Programm, als wäre
// der Mauspfeil noch auf dem Button
(Capture). Nun kann man über X und Y
// abfragen, ob der Mauspfeil noch über dem Button ist, aber nicht,
// ob der Mauspfeil inzwischen über einem anderen Control steht.
// Das erledigt der nachfolgende Code.


// Getestet mit D4 unter XP

procedure TForm1.Button2MouseMove(Sender: TObject; Shift: TShiftState; X, 
  Y: Integer); 
var cntrl: TControl; 
begin 
  cntrl := FindDragTarget(TButton(Sender).ClientToScreen(Point(X, Y)), False); 
  Label1.caption := cntrl.name; 
  if cntrl = Button7 then showmessage('Button7 gefunden'); // z.B.
end;

// Das funktioniert aber nicht, wenn das Control disabled oder invisible ist.
// Siehe dazu
Mausereignisse abfragen, wenn ein Control disabled ist



 

Zugriffe seit 6.9.2001 auf Delphi-Ecke