// Getestet mit D4 unter XP

// Wenn man im Ereignis "MouseDown" das Kursor-Bild ändern will, z.B.:
procedure TForm1.Panel1MouseDown(Sender: TObject; Button: TMouseButton; 
  Shift: TShiftState; X, Y: Integer); 
begin 
  Panel1.Cursor := crHandPoint; 
end; 
 
procedure TForm1.Panel1MouseUp(Sender: TObject; Button: TMouseButton; 
  Shift: TShiftState; X, Y: Integer); 
begin 
  Panel1.Cursor := crDefault; 
end;

// so schlägt das normalerweise fehl (Grund: Mouse-Capture). Das kann
// man umgehen:

procedure TForm1.Panel1MouseDown(Sender: TObject; Button: TMouseButton; 
  Shift: TShiftState; X, Y: Integer); 
begin 
  Panel1.Cursor := crHandPoint; 
  ReleaseCapture; 
  Application.processmessages; 
  SetCapture(Panel1.handle); 
end; 
 
procedure TForm1.Panel1MouseUp(Sender: TObject; Button: TMouseButton; 
  Shift: TShiftState; X, Y: Integer); 
begin 
  Panel1.Cursor := crDefault; 
end;

// Das gelingt z.B. bei "TImage" nicht (fehlendes Handle).
// Mit einem ganz kleinen Trick funktioniert es aber doch:

procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton; 
  Shift: TShiftState; X, Y: Integer); 
begin 
  Image1.Cursor := crHandPoint; 
  ReleaseCapture; 
  Application.processmessages; 
  SetCapture(Image1.Parent.handle); 
end; 
 
procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton; 
  Shift: TShiftState; X, Y: Integer); 
begin 
  Image1.Cursor := crDefault; 
end;



 

Zugriffe seit 6.9.2001 auf Delphi-Ecke