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 Überlappende Images abfragen. (https://www.delphipraxis.net/40211-ueberlappende-images-abfragen.html)

smart 12. Feb 2005 14:26


Überlappende Images abfragen.
 
Hallo Leute.
Ich habe auf einer Form, 2 mit der Maus bewegliche TImage. Wie kann ich herausfinden ob die Images teilweise übereinander geschoben wurden?

Torpedo 12. Feb 2005 14:29

Re: Überlappende Images abfragen.
 
Mit Image.Top, Image.Left, Image.Height und Image.Width kannst du das ganz leicht berechnen.

smart 12. Feb 2005 14:49

Re: Überlappende Images abfragen.
 
Das ist ja wohl klar, aber die Frage ist wie, bzw. wie am einfachsten. Das Rad muss ja nicht zweimal erfunden werden. Welcher von unseren Spieleprogrammierer kannt sich da aus?

Muetze1 12. Feb 2005 14:52

Re: Überlappende Images abfragen.
 
Moin!

Schau dir mal die WinAPI Funktion IntersectRect() an - die gibt dir bei Übergabe von 2 Rechtecken zum einen zurück, ob diese sich überschneiden und zum anderen sogar das Rechteck der Überschneidung selber.

MfG
Muetze1

smart 12. Feb 2005 15:05

Re: Überlappende Images abfragen.
 
Vielen Dank auch, die IntersectRect() Funktion ist genau das was ich brauche. Hast Du damit schon Erfahrung sammeln können?

Elite 12. Feb 2005 15:13

Re: Überlappende Images abfragen.
 
Hier wurde auch ein Beispiel für IntersectRect() gepostet.

Muetze1 12. Feb 2005 16:16

Re: Überlappende Images abfragen.
 
Moin!

Zitat:

Zitat von smart
Vielen Dank auch, die IntersectRect() Funktion ist genau das was ich brauche. Hast Du damit schon Erfahrung sammeln können?

Ja klar - bei einer grösseren grafischen Anwendung von mir überprüfe ich damit ob ein Element neu gezeichnet werden muss - also sprich ob es eine Überschneidung zwischen dem ClipRect des Canvas und dem ElementRect des Elementes gibt.

MfG
Muetze1

smart 13. Feb 2005 08:36

Re: Überlappende Images abfragen.
 
Ich habe hier mal den Code getestet. Ich habe eine Form und zwei bewegliche TPanels. Wenn einer der beiden TPanels sich überschneiden, soll ein Ereignis ausgelöst werden. Leider geht es nicht! Was mache ich da falsch?

Delphi-Quellcode:
var schnittmenge, APanel, BPanel: TRect;
begin
  schnittmenge := Rect(80, 80, 80,80);
  APanel := Rect(Panel1.left,Panel1.Top,
                Panel1.left+Panel1.Width,Panel1.Top+Panel1.Height);
  BPanel := Rect(Panel2.Left, Panel2.Top,
                Panel2.Left+Panel2.Width,Panel2.Top+Panel2.Height);
  if intersectrect(Schnittmenge, APanel, BPanel) then Close;
end;

ReDoX 13. Feb 2005 08:59

Re: Überlappende Images abfragen.
 
Steht der Code im OnMouseMove?
Mfg ReDoX

smart 13. Feb 2005 09:14

Re: Überlappende Images abfragen.
 
Nein, In OnMouseUp. Aber auch wenn er in einem Button.click ist geht er nicht.


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