Einzelnen Beitrag anzeigen

mimi

Registriert seit: 1. Dez 2002
Ort: Oldenburg(Oldenburg)
2.008 Beiträge
 
FreePascal / Lazarus
 
#1

Negative Positions bzw. gröen angaben > Collisions proble

  Alt 29. Okt 2006, 18:53
Hallo,
ich erstelle zurlaufzeit Rechtecke und Kreise und das problem ist jetzt sobal ich im negativen bereich bei der Größen angabe komme, kann ich das objekt nicht mehr makieren weils es nicht mehr erkannt wird.

ich dachte ich brauche nur die angaben zu tauschen und endsprehcne if abfragen zu schreibe doch leider funktioniert das nicht 100 %ig weil objkete die zunah am makieren objekt sind können nicht mehr makiert werden..
hier ist MEIN qullcode denn ich dafür gedacht/entwickelt habe:
Delphi-Quellcode:
function TPaint2ObjList.GetItemIndex(x,y:Integer;Obj:TObjectList):Integer;
var
  i,pIndex:Integer;
  r:TRect;
  sx,sy:Integer;
  px,py:Integer;
begin
  pIndex:=-1;
  for i:=0 to obj.count-1 do begin
    with TPaint2Obj(obj.items[i]) do begin
      sx:=size.x; sy:=size.y;
      if sx < -1 then begin
        px:=size.x;
        sx:=px-position.X
      end
      else begin
        px:=position.X;
        sx:=size.x+px;
      end;

      if sy < -1 then begin
        py:=size.y;
        sy:=py-position.Y
      end
      else begin
        py:=position.y;
        sy:=size.y+py;
      end;


      if PtInRect(rect(px,py,sx,sy),Point(x,y)) then begin
        pindex:=i;
      end;
    end;
  end;
  if pindex > -1 then
  objSel:=TPaint2Obj(obj.items[pindex]);
  result:=Pindex;
  if pindex > -1 then begin
    fvt.Clear;
    TPaint2Obj(obj.items[pindex]).CreateDatenList;
    AddToTree(fVt,'test',TPaint2Obj(obj.items[pindex]).Daten);
  end;
end;
Vielen dank im vorraus auf eine antwort die nicht gleich wieder lautet nutzt die such funktion das habe ich bereits gemacht leider ohne ergbnis
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat