Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Kollision mit Image und Maus ? (https://www.delphipraxis.net/79707-kollision-mit-image-und-maus.html)

smart 26. Okt 2006 18:54


Kollision mit Image und Maus ?
 
Hallo Alle!

Wie kann ich eine Kollision mit Image und Maus errechen?
Ich kenne nur
Delphi-Quellcode:
Var
lSectionRect : TRect;
begin
For Test2 := 1 To I Do
If (IntersectRect(lSectionRect, Image1.BoundsRect, Image2.BoundsRect)) Then
   begin
….
Wie bekomme ich da die Maus rein?

Gruß
Heike

DGL-luke 26. Okt 2006 18:56

Re: Kollision mit Image und Maus ?
 
:gruebel:

OnMouseEnter / OnMouseLeave?

EDIT: Ansonsten immer:

Delphi-Quellcode:
function MouseInRect(Rect: TRect; Control: TControl):Boolean;
var p: TPoint;
begin
  p := Mouse.CursorPos;
  if Control <> nil then
    p := Control.ScreenToClient(p);

  Result := (p.X >= Min(Rect.Left, Rect.Right)) and (p.X <= Max(Rect.Left, Rect.Right)) and (p.Y >= Min(Rect.Top, Rect.Bottom)) and p.Y <= Max(Rect.Top, Rect.Bottom);
end;
EDIT: Prozedur->Funkion :roll:

mirage228 26. Okt 2006 18:59

Re: Kollision mit Image und Maus ?
 
Hi,

Falls das TImage kein Delphi-Referenz durchsuchenOnMouseLeave / Delphi-Referenz durchsuchenOnMouseEnter hat, dann
könntest Du mit MSDN-Library durchsuchenCreateRectRgn eine Region mit den Koordinaten des Images erstellen und dann beim MouseMove (der Form / des Images) mit MSDN-Library durchsuchenPtInRegion die Positon überprüfen.

mfG
mirage228

PainInYourBrain 26. Okt 2006 19:05

Re: Kollision mit Image und Maus ?
 
wie genau meinst du denn Kollision ?
- soll das Image sich darauf zubewegen und abprallen, oder weggeschubst werden von der Maus ?
Denn dann bräuchtest du dazu noch eine Richtungsangabe, die du ja nicht durch "OnMouseEnter" und "OnMouseLeave" bekommen würdest, oder sehe ich das falsch ?

---
( Hab leider kein Delphi grade zur Hand, bald aber wieder ... )
---

smart 26. Okt 2006 19:19

Re: Kollision mit Image und Maus ?
 
Zitat:

Zitat von PainInYourBrain
wie genau meinst du denn Kollision ?
- soll das Image sich darauf zubewegen und abprallen, oder weggeschubst werden von der Maus ?
Denn dann bräuchtest du dazu noch eine Richtungsangabe, die du ja nicht durch "OnMouseEnter" und "OnMouseLeave" bekommen würdest, oder sehe ich das falsch ?

Hi.

Nicht ganz. Ein Image soll sich auf die Maus drauf zu bewegen. Wenn es getroffen hat, soll was ausgelösst werden.

Gruß
Heike

Hawkeye219 26. Okt 2006 19:29

Re: Kollision mit Image und Maus ?
 
Hallo Heike,

vielleicht hilft dir ja die Funktion Delphi-Referenz durchsuchenFindDragTarget aus der Unit Controls. Mit ihr kannst du sogar ermitteln, welches Control der Mauszeiger berührt hat.

Gruß Hawkeye

Sunlight7 26. Okt 2006 19:52

Re: Kollision mit Image und Maus ?
 
Hallo Heike!

Du meinst, sobald der Mauscursor das Image berührt?

Dann einfach OnMouseMove des Image verwenden.

smart 27. Okt 2006 10:20

Re: Kollision mit Image und Maus ?
 
Zitat:

Zitat von Sunlight7
Du meinst, sobald der Mauscursor das Image berührt?
Dann einfach OnMouseMove des Image verwenden.

Hi.

Mit OnMouseMove geht das nicht so ganz. Wenn die Maus nicht bewegt wird und das Image kommt unter der Maus, dann wird kein OnMouseMove ausgelöst.

Gruß
Heike

DGL-luke 27. Okt 2006 12:29

Re: Kollision mit Image und Maus ?
 
Dann solltest du die Prüffunktion, die ich vorgeschlagen habe, verwenden, jedesmal wenn du das image bewegst.

Namenloser 27. Okt 2006 12:36

Re: Kollision mit Image und Maus ?
 
Zitat:

Zitat von DGL-luke
Dann solltest du die Prüffunktion, die ich vorgeschlagen habe, verwenden, jedesmal wenn du das image bewegst.

Und wenn sich das Image alle 1000 ms bewegt und ich dazwischen mit meiner Maus drüberfahre?

ich würde im MouseMove und bei der Bewegung kontrollieren.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:26 Uhr.
Seite 1 von 2  1 2      

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