Einzelnen Beitrag anzeigen

Robert_G
(Gast)

n/a Beiträge
 
#13

Re: Maus in TImage einsperren (Mäusefalle)

  Alt 9. Mai 2004, 19:28
Warum dann nicht so:
Delphi-Quellcode:
Procedure TfrmIrgendWas.MouseTrap(Trap :Boolean);
var
  ClipRect : TRect;
begin
  IsTrapping := Trap;
  if Trap then
  begin
    with Panel1 do
      with ClientRect do
        ClipRect := Rect(ClientToScreen(TopLeft),
                         ClientToScreen(BottomRight));

    ClipCursor(@ClipRect);
  end
  else
    ClipCursor(nil);
end;
Zum Einfangen:
  MouseTrap(True); Zum Freilassen:
  MaouseTrap(False); Um die Maus für andere Anwendungen benutzen zu können braucht es noch 2 Events & eine bool'sche Variable im Form:
Delphi-Quellcode:
type
  TfrmIrgendWas = class(TForm)
    ...
    procedure AppActivate(Sender: TObject);
    procedure AppDeactivate(Sender: TObject);
  private
    IsTrapping :Boolean;
    ...
AppActivate:
  MouseTrap(IsTrapping); AppDeactivate:
  ClipCursor(nil); Die beiden Events musst du Application verpassen.

Ist nicht wirklich professionell (ich kam noch nie in die Verlegenheit die Maus einzufangen ), aber es dürfte funktionieren.
  Mit Zitat antworten Zitat