![]() |
TPoints vergleichen
Wie kann man zwei TPoints DIREKT vergleichen?
Also ich meine nicht über P1.X = P2.X P1.Y = P2.Y |
Re: TPoints vergleichen
Eine Möglichkeit, die (noch) funktioniert:
Delphi-Quellcode:
Ob es lesbar ist und viel bringt, ist fraglich.
if Int64(P1) = Int64(P2) then...
Gruß Hawkeye |
Re: TPoints vergleichen
xZise, du kannst dir doch auch eine kleine funktion schreiben:
Delphi-Quellcode:
gruss
function IsPointDifferently(point1, point2: TPoint): boolean;
begin result := (point1.x <> point2.x) or (point1.y <> point2.y); end; |
Re: TPoints vergleichen
TPoint ist ein Record, und in Delphi 2006 gibts noch Überladen von Operatoren. Dazu musst du dein TPoint noch definieren:
Delphi-Quellcode:
Und dann kannst du ganz bequem deine Punkte vergleichen:
interface
TPoint = record x, y : LongInt ; class operator Equal (p1, p2 : TPoint) : boolean ; end ; implementation class operator TPoint.Equal(p1, p2: TPoint): boolean; begin Result := (p1.x = p2.x) and (p1.y = p2.y); end; end.
Delphi-Quellcode:
Aber ob dazu zu raten ist, ist ne andere Frage.
var
n1, n2 : TPoint ; begin if n1 = n2 then ; // Tuwas end ; |
Re: TPoints vergleichen
@ Hawkeye219:
Warum "noch" @ MrKnogge: Danke ^^ Hatte ich auch so gemacht @ Jelly: Hatte ich auch gesehen, aber ich habe D2006 net... Nur D2005 PE! @ all: Hat sich somit erledigt, wenn keiner eine bessere für D2005 PE, wie die von MrKnogge ist, kennt. |
Re: TPoints vergleichen
Kenne auch nichts besseres würde aber statt
Delphi-Quellcode:
ein
function IsPointDifferently(point1, point2: TPoint): boolean;
Delphi-Quellcode:
vorziehen.
function EqualPoint(const Point1, Point2: TPoint): Boolean;
1.) vergleichbar zu EqualRect() 2.) const Parameter Gruß Hagen |
Re: TPoints vergleichen
Zitat:
Mein Rat: bleibe bei den Einzel-Vergleichen, das ist für den Leser leichter nachzuvollziehen. Der von Delphi erzeugte Assembler-Code ist für beide Varianten übrigens nahezu identisch. Bei den Einzelvergleichen kommt Delphi sogar mit einem CPU-Register aus. Gruß Hawkeye |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:16 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz