Autor |
Beitrag |
delphianer5
Beiträge: 30
|
Verfasst: Mi 10.03.10 22:20
Hi,
ich habe Vista und kann die Hilfe nicht öffnen und kann mir das Windows Update in nicht absehbarer Zeit herunterladen.
Kann mir einer die Hilfe für IntersectRect (oder so ähnlich) hier posten?
lg delphianer
|
|
elundril
Beiträge: 3747
Erhaltene Danke: 123
Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
|
Verfasst: Mi 10.03.10 22:23
Die Delphi-Hilfe im onlineformat. Zwar auf englisch aber mit babelfisch oder google übersetzer sollte das ja auch nur ein minimales hinderniss.
lg elundril
_________________ This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
|
|
delphianer5
Beiträge: 30
|
Verfasst: Mi 10.03.10 22:29
Danke,hab zwar gegooglt,aber das war *Seiten auf Deutsch* als Standardeinstellung wohl nicht so hilfreich^^
|
|
delphianer5
Beiträge: 30
|
Verfasst: Mi 10.03.10 22:34
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
Beiträge: 3747
Erhaltene Danke: 123
Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
|
Verfasst: Mi 10.03.10 22:42
Rufen sie IntersectRect auf um das Rechteck zu bekommen bei dem sich die rechtecke R1 und R2 überschneiden. Das Resultierende rechteckt wird mit dem ersten Parameter (der den namen Rect trägt) zurückgegeben.
Wenn der Rückgabe wert der Function true ist dann haben die zwei Rechtecke R1 und R2 eine nichtleere überschneidung.Wenn sich R1 und R2 nicht überschneiden dann liefert die function false und der out Parameter bekommt ein Rechteck an der stelle (0,0) und mit der höhe und breite von 0 zugewiesen.
btw: Englisch lernen ist zum programmieren essentiell wichtig. also brav in der schule aufpassen.
lg elundril
_________________ This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
|
|
delphianer5
Beiträge: 30
|
Verfasst: Mi 10.03.10 23:02
Übersetzen konnte ich es schon,nur weiß ich nicht wie ich damit umgehen soll.
Wie muss ich das coden?
Mein Problem bezieht sich auch auf den Thread
|
|
elundril
Beiträge: 3747
Erhaltene Danke: 123
Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
|
Verfasst: Mi 10.03.10 23:06
Sagte ich doch du musst 3 Datenstrukturen vom Typ TRect übergeben und bekommst einen Boolean wert zurück. In das erste übergebene TRect kommt der überlappende bereich hinein von dem zweiten und dritten übergebenen TRect. Und der Rückgabewert liefert true wenn sich der zweite und dritte TRect wert überlappen und false wenn dies nicht so ist.
lg elundril
_________________ This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
|
|
delphianer5
Beiträge: 30
|
Verfasst: Mi 10.03.10 23:22
so und jetzt auf Deutsch^^
Kannst du das irgendwie einfacher formulieren?
Aber ich befürchte das das jetzt meine Kompetenzen übersteigt,muss wohl warten bis wir in der Schule weiter sind^^
|
|
elundril
Beiträge: 3747
Erhaltene Danke: 123
Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
|
Verfasst: Mi 10.03.10 23:27
ok, wie ich sehe willst du gar nicht den bereich in dem sich die zwei rechtecke deiner bilder (also die grenzen deiner Bilder) überschneiden sonder du willst einfach nur wissen ob sich die bilder überschneiden. Dann machst du folgendes (anscheinend kommen wir mit blankem erklären nicht aus, deswegen gibts von mir ausnahmsweise den code):
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7:
| procedure TForm1.IrgendeineProzedurInDieDerCodeReinsoll(); var myRect: TRect; begin if IntersectRect(myRect, Image1.ClientRect, Image2.ClientRect) then else end; |
//edit: falsche Eigenschaft übergeben -> ClientRect heißts
lg elundril
_________________ This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
Zuletzt bearbeitet von elundril am Mi 10.03.10 23:32, insgesamt 1-mal bearbeitet
|
|
Jann1k
Beiträge: 866
Erhaltene Danke: 43
Win 7
TurboDelphi, Visual Studio 2010
|
Verfasst: Mi 10.03.10 23:27
Wenn du mit InterSectRect nicht klarkommst, mach es doch einfach selbst ^^
In dem anderen Thread hab ich dir ja bereits beschrieben, was du abfragen musst, um zu überprüfen ob sich die beiden Bilder überschneiden.
|
|
delphianer5
Beiträge: 30
|
Verfasst: Mi 10.03.10 23:56
Danke für den Code!
Wie du siehst,hab ich davon noch keinen Plan und ich hatte mir nen allgemeinen Code+Erklärungen gewünscht.
Noch eine letzte Frage^^:
Jetzt klappt es nur eins.Kurz eine kleine Erklärung.Ich habe Bilder auf der form1 und lasse diese wandern und man kann sie mit Buttons steuern.Und wie ihr wisst,soll wenn sich 2 Bilder Überschneiden etwas ausgeführt werden bzw ein Bild erscheinen.Ich habs so getestet das ich es bei einen Button eingefügt habe und dann hat es funktioniert.Muss ich das bei jeden Button einfügen oder gibts ne einfacherere Lösung?
@Jann1k:
Ich wollte es selbst machen,aber so wie ich das gemacht habe hat es nicht gefunzt^^
Das hab ich auch nicht verstanden bzw. ich habs versucht hab aber nicht funktioniert
|
|
elundril
Beiträge: 3747
Erhaltene Danke: 123
Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
|
Verfasst: Do 11.03.10 00:00
Ja, es gibt eine Einfachere Lösung. Du lagerst das in ne extra-Procedure aus und rufst diese nach dem bewegen in deiner Button-Procedure auf. Fallst du nicht weißt wie das geht rate ich dir dringend zum Delphi-Wikibook und zu Christian's Crashkurs.
lg elundril
_________________ This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
|
|