![]() |
Ü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? |
Re: Überlappende Images abfragen.
Mit Image.Top, Image.Left, Image.Height und Image.Width kannst du das ganz leicht berechnen.
|
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?
|
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 |
Re: Überlappende Images abfragen.
Vielen Dank auch, die IntersectRect() Funktion ist genau das was ich brauche. Hast Du damit schon Erfahrung sammeln können?
|
Re: Überlappende Images abfragen.
![]() |
Re: Überlappende Images abfragen.
Moin!
Zitat:
MfG Muetze1 |
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; |
Re: Überlappende Images abfragen.
Steht der Code im OnMouseMove?
Mfg ReDoX |
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. |
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