// Wenn bei einem Control Enabled oder Visible auf False steht, erhält man
// keine Rückmeldung auf Events, wie beispielsweise
OnMouseDown oder
// OnMouseMove. Das kann man aber beim Parent abfragen. Wenn also ein Button
// auf Form1 sitzt, fragt man z.B. die Mausbewegung in
FormMouseMove ab.
// Hat man ein Memo auf Panel1 gesetzt, dann erfolgt die Abfrage eben
// in
Panel1MouseMove.
// Wenn Enabled und Visible der Controls wieder auf True gesetzt werden,
// erfolg die Abfrage natürlich wieder in
Button1MouseMove bzw. Memo1MouseMove.

// Getestet mit D4 unter WinME

 

// Grundfunktion 
 
function testen(TC: TControl; x, y: integer): boolean; 
begin 
  result := ptinrect(tc.boundsrect, point(x, y)); 
end; 
 
 
// Abfrage für einen Button auf Form1 
 
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, 
  Y: Integer); 
begin 
  if testen(Button1, x, y) then 
    label1.caption := 'darüber' else label1.caption := 'daneben'; // z.B. 
end; 
 
 
// Abfrage für ein Memo auf Panel1 
 
procedure TForm1.Panel1MouseMove(Sender: TObject; Shift: TShiftState; X, 
  Y: Integer); 
begin 
  if testen(Memo1, x, y) then 
    beep; // z.B. 
end; 

 

Zugriffe seit 6.9.2001 auf Delphi-Ecke