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



BeitragVerfasst: 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
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: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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 30



BeitragVerfasst: Mi 10.03.10 22:29 
Danke,hab zwar gegooglt,aber das war *Seiten auf Deutsch* als Standardeinstellung wohl nicht so hilfreich^^
delphianer5 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 30



BeitragVerfasst: 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
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: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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 30



BeitragVerfasst: 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
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 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 30



BeitragVerfasst: 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
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 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):

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
procedure TForm1.IrgendeineProzedurInDieDerCodeReinsoll();
var myRect: TRect;
begin
  if IntersectRect(myRect, Image1.ClientRect, Image2.ClientRect) then
    //dein Code der ausgeführt werden soll wenn sich die beiden Images überschneiden
  else  //noch mehr code -> ist aber optional falls code ausgeführt werden soll wenn sie sich nicht überschneiden
end;


//edit: falsche Eigenschaft übergeben -> ClientRect heißts :D

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
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 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 30



BeitragVerfasst: 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
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: 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.