Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Maus in TImage einsperren (Mäusefalle) (https://www.delphipraxis.net/21804-maus-timage-einsperren-maeusefalle.html)

SirThornberry 8. Mai 2004 17:53

Re: Maus in TImage einsperren (Mäusefalle)
 
@glkbkk: Im grunde genommen geht das auch, allerdings musst da da bei jeder mausbewegung die mausposition abfragen. Und wenn man schnell genug ist schafft man es auch kurzzeitig den mauskursor über dem bild weg zu bekommen

sCrAPt 9. Mai 2004 17:29

Re: Maus in TImage einsperren (Mäusefalle)
 
Und außerdem möchte ich es ja auf dem best professionelsten Weg machen :mrgreen: :zwinker:

:angle:, sCrAPt

Robert_G 9. Mai 2004 18:28

Re: Maus in TImage einsperren (Mäusefalle)
 
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:
Delphi-Quellcode:
  MouseTrap(True);
Zum Freilassen:
Delphi-Quellcode:
  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:
Delphi-Quellcode:
  MouseTrap(IsTrapping);
AppDeactivate:
Delphi-Quellcode:
  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.

sCrAPt 9. Mai 2004 21:54

Re: Maus in TImage einsperren (Mäusefalle)
 
JaJa Robertokarlostina_G.... Musstest du auch wieder deinen Senf dazu geben, gelle :zwinker:
Zitat:

ich kam noch nie in die Verlegenheit die Maus einzufangen
Und was is wenn du ne Mäuseplage in der Wohnung/im Haus hast? Dann brauchste Mäusefallen ;)

:angle:, sCrAPt

glkgereon 10. Mai 2004 14:02

Re: Maus in TImage einsperren (Mäusefalle)
 
@Sir Thonberry
klar, haste recht, und wirklich professionell.... :-D

Niko 10. Mai 2004 14:55

Re: Maus in TImage einsperren (Mäusefalle)
 
@Robert:
Wenn, dann schon mit BoundsRect statt ClientRect :wink: : ClientRect.TopLeft ist immer (0, 0).


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:01 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz