Delphi-PRAXiS
Seite 2 von 2     12   

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 27. Okt 2006 13:17

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.

Hi.

Vielen Dank! Muss ich da was in den Uses setzen? Delphi kennt angeblich 'Result' nicht !?

Gruß
Heike

turboPASCAL 27. Okt 2006 13:20

Re: Kollision mit Image und Maus ?
 
Delphi-Quellcode:
procedure MouseInRect(Rect: TRect; Control: TControl);
sollte wohl so heissen:
Delphi-Quellcode:
function MouseInRect(Rect: TRect; Control: TControl): Boolean;
Dann Klappt es auch mit dem Result. ;)

smart 27. Okt 2006 13:28

Re: Kollision mit Image und Maus ?
 
Vielen Dank an Alle

Damit bin ich weiter gekommen.

Gruß
Heike

smart 27. Okt 2006 15:24

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.

Hallo.

Kann mir noch mal Einer bitte helfen. Wie frage ich mit der Function ab? Entweder ich bekomme einen Fehler (falsche Typen) oder zwar keinen Fehler, aber klappt dann auch nicht.

Gruß
Heike

DGL-luke 27. Okt 2006 16:08

Re: Kollision mit Image und Maus ?
 
Hallo, natürlich muss es so sein:

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;
Du solltest die unit Math einbinden und sie so aufrufen:

Delphi-Quellcode:
if MouseInRect(rect(0,0,50,50),SomeControl) then
  ...
damit prüfst du, ob die Maus innerhalb des Rechtecks innerhalb des Controls liegt. für ein komplettes Image also:

Delphi-Quellcode:
if MouseInRect(rect(0,0,Image1.Width,Image1.Height),Image1) then
  ...
Sollte korrekte Resultate erzeugen.

smart 27. Okt 2006 18:19

Re: Kollision mit Image und Maus ?
 
Zitat:

Zitat von DGL-luke
Du solltest die unit Math einbinden und sie so aufrufen:

Ja, dass war der Fehler den machte. Math hatte ich nicht eingebunden.

Nochmals, vielen Dank, für Deine Geduld und Mühe.

Gruß
Heike


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:19 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