Ich habe weiter getestet und komme zu dem merkwürdigen Ergebnis, dass rectshape.contains(x,y) immer nur für diejenigen Koordianten des Fensters true zurückgibt, die dem oberen linken Viertel des rectshapes entsprechen. Also, hat das rectshape die Maße 100x100, dann liefert rectshape.contains(x,y) true für alle Bildschirm-Koordianten bis 49,49, gleichgültig, wo im Fenster das rectshape liegt.
Gibts dafür eine Idee?

beste Grüße, Christian Hahn.
--------------------------------------------------------
Window1.Open-Event:

 X0 = 500
 Y0 = 100

 r = New RectShape
 r.x = 0
 r.y = 0
 r.Border = 100
 r.Width = 150
 r.Height = 150
 r.FillColor = rgb(220,220,220)
 r.BorderColor = rgb(0,0,0)
 r.BorderWidth = 1

 Window1.Graphics.DrawObject r,X0,Y0
--------------------------------------------------------
Sub Suchen:
 dim i,j as Double
 dim ist as Boolean
 dim tmpText as String

 for i = 1 to 1000
   for j = 1 to 1000
     ist = r.Contains(i,j)
     if ist = true then
       MsgBox str(i) + ", " + str(j) + ": " + "true"
     end if
   next
 next


----- Original Message ----- From: "Christian Hahn" <[email protected]>
To: "REALbasic NUG German" <[email protected]>
Sent: Thursday, October 14, 2010 5:04 PM
Subject: RectShape.Contains


Hallo,
ich habe ein RectShape r innerhalb eines Group2D-Objekts, im MouseDown-Event des Fensters steht:

 dim tmpText as  String
 tmpText = str(x) + ", " + str(y)

 if r.Contains(x,y) = true then
   tmpText = tmpText + " (true)"
 else
   tmpText = tmpText + " (false)"
 end if

 MsgBox tmpText

Aber auch, wenn ich in's Rechteck klicke, kommt immer nur false.
Ist das meine Doofheit oder die von Real Studio?

beste Grüße, Christian Hahn.

Antwort per Email an