Mir ist da noch eine andere lösung eingfallen doch diese hat auch nicht funkioniert und zwar wollte ich folgendes machen:
Zuerst rechne ich den mittelpunk aus, dann
rechne ich mir die größe für x und y aus teile sie durch 2
das mache ich mit allen objekten.
wenn ich fertig bin muss ich normalerweise doch nur noch:
Mittelpunk1-Mittelpunk2-Größe1-Größe2 rechnen doch das klapp leider nich hier mein qullcode:
Delphi-Quellcode:
var
i:integer;
sm,sm1:TPoint;
s1,s2:TPoint;
m,s:Integer;
begin
sm.x:=TFigure(obj.Items[selobj]).Style.LastPos.X div 2;
sm.y:=TFigure(obj.Items[selobj]).Style.LastPos.y div 2;
S1.X:=(TFigure(obj.Items[selobj]).Style.LastPos.X-TFigure(obj.Items[selobj]).Style.FirstPos.X) div 2;
S1.Y:=(TFigure(obj.Items[selobj]).Style.LastPos.Y-TFigure(obj.Items[selobj]).Style.FirstPos.Y) div 2;
// und von einenm anderen objekt
for i:=0 to obj.count-1 do begin
if (TFigure(obj.Items[i]).Style.isSel = True) and (i <> SelObj) then begin
with TFigure(obj.Items[i]).Style do begin
sm1.x:=LastPos.X div 2; sm1.y:=LastPos.y div 2;
S2.X:=(LastPos.X-FirstPos.X) div 2;
S2.Y:=(LastPos.Y-FirstPos.Y) div 2;
end;
end;
end;
// Label2.Caption:=FloatToStr((Sm1.X-sm.X) / 3 )
m:=sm.X-sm1.X; s:=S1.X+s2.X;
Label2.Caption:=IntToStr(s-m);
ich werde mir gleich mal eure vorschläge anschauen !!!
Edit:
@TheAn00bis
ungefähr so habe ich es mir auch vorgstellt *G*