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