Autor Beitrag
delphianer5
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 30



BeitragVerfasst: Mi 10.03.10 00:03 
Hi,
ich bin immer noch beim selben Projekt nur habe ich eine Frage bzw. ein weiteres Problem.
Ich lasse ja Bilder über form1 wandern.
Ich hätte gerne das wenn sich 2 Bilder "treffen", ein Bild erscheint.
ausblenden Delphi-Quelltext
1:
2:
3:
4:
if F430.Left=Hummer.Left.Hummer then
   begin
   Atom.Visible:=True;
   end;

Hat nicht so wirklich funktioniert.Liegts am Code?Oder an der Herangehensweise?
Da man die Bilder frei über form1 steuern kann,ist es glaub ich fast unmöglich das Top oder Left genau gleich sind.Jemand eine Idee wie ich das verwirklichen könnte?
Mein Ansatz wäre das ich vlt. wenn das geht,irgendwie nen Intervall anzugeben?Ist das irgendwie möglich?

lg delphianer5

Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt
Jann1k
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 866
Erhaltene Danke: 43

Win 7
TurboDelphi, Visual Studio 2010
BeitragVerfasst: Mi 10.03.10 00:14 
Ja klar, du kennst ja die Breite deiner Bilder, was du abfragen musst sieht ungefähr so aus:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
if (Bild1.left+Bild1.width > Bild2.left) and
   (Bild1.left < Bild2.left+Bild2.width) and
   (Bild1.top+Bild1.height > Bild2.top) and
   (Bild1.top < Bild2.top+Bild2.height)


Alternativ kannst du auch eine vorgefertigte Funktion dafür nutzen, die heißt IntersectRect (oder so ähnlich) und erwartet zwei TRects als Parameter, die kannst du dir entweder selbst aus den Eigenschaften deiner Bilder erstellen oder BoundsRect verwenden.
delphianer5 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 30



BeitragVerfasst: Mi 10.03.10 22:36 
Kann mir einer das erklären wie das geht?Ich komme damit nicht klar


Call IntersectRect to obtain the rectangle that is the intersection of R1 and R2. The intersection is returned as the Rect parameter.

IntersectRect returns true if the two rectangles have a nonempty intersection. If R1 and R2 do not overlap, IntersectRect returns false, and the Rect parameter is set to a rectangle at position (0,0) with 0 Width and 0 Height.


Call IntersectRect erhalten Sie das Rechteck, das den Schnittpunkt von R1 und R2 ist. Der Schnittpunkt ist die Rect Parameter zurückgegeben.

IntersectRect liefert true, wenn die beiden Rechtecke einen nicht leeren Durchschnitt haben. Wenn R1 und R2 nicht überlappen, IntersectRect false zurück, und die Rect Parameter ist, um ein Rechteck an der Position (0,0) mit 0 Breite und Höhe 0 gesetzt.
elundril
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: Mi 10.03.10 22:44 
einmal posten reich, gelleja? Antwort findest du hier.

lg elundril

_________________
This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.