| Autor |
Beitrag |
Ironwulf
      
Beiträge: 733
Erhaltene Danke: 2
|
Verfasst: Mo 22.12.08 01:10
hy,
ist es möglich die 2 Koordinaten (x und y) von TPoint zu vergleichen? also z.b. so
Delphi-Quelltext 1:
| If Point1 = Point2 Then ... |
oder muss ich das immer so machen:
Delphi-Quelltext 1:
| If (Point1.X = Point2.X) And (Point1.Y = Point2.X) Then ... |
zweiteres fänd ich umständlich und würde in meinem Programm um einiges unübersichtlicher ausfallen
|
|
JayEff
      
Beiträge: 2971
Windows Vista Ultimate
D7 Enterprise
|
Verfasst: Mo 22.12.08 01:13
Schonmal ausprobiert?
Edit: Grade getestet, scheint nicht zu gehen. Definier dir doch einfach eine istgleich relation auf das TPoint Objekt:
Delphi-Quelltext 1: 2: 3: 4:
| function equal(a, b : TPoint): Boolean; begin result := (a.x = b.x) and (a.y = b.y); end; |
_________________ >+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
|
|
Xentar
      
Beiträge: 2077
Erhaltene Danke: 2
Win XP
Delphi 5 Ent., Delphi 2007 Prof
|
Verfasst: Mo 22.12.08 01:18
Schreib dir halt ne Funktion CompareTPoint oder so..
Edit: Jo, genau sowas meinte ich 
_________________ PROGRAMMER: A device for converting coffee into software.
|
|
jakobwenzel
      
Beiträge: 1889
Erhaltene Danke: 1
XP home, ubuntu
BDS 2006 Prof
|
Verfasst: Mo 22.12.08 01:19
Bei neueren Delphiversionen gibts class operator, die genau dafür gemacht sind:
Delphi-Quelltext 1: 2: 3: 4:
| TPointCompare = record x,y:Integer; class operator Equal(p1,p2:TPointCompare):Boolean; end; |
Leider kriegt man das aber nicht mehr nachträglich in TPoint rein.
_________________ I thought what I'd do was, I'd pretend I was one of those deaf-mutes.
|
|
JayEff
      
Beiträge: 2971
Windows Vista Ultimate
D7 Enterprise
|
Verfasst: Mo 22.12.08 01:22
_________________ >+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
|
|
jakobwenzel
      
Beiträge: 1889
Erhaltene Danke: 1
XP home, ubuntu
BDS 2006 Prof
|
Verfasst: Mo 22.12.08 01:23
IIRC 2006, vielleicht auch seit 2005 
_________________ I thought what I'd do was, I'd pretend I was one of those deaf-mutes.
|
|
Tilman
      
Beiträge: 1405
Erhaltene Danke: 51
Win 7, Android
Turbo Delphi, Eclipse
|
Verfasst: Mo 22.12.08 01:23
_________________ Bringe einen Menschen zum grübeln, dann kannst du heimlich seinen Reis essen.
(Koreanisches Sprichwort)
|
|
Ironwulf 
      
Beiträge: 733
Erhaltene Danke: 2
|
Verfasst: Mo 22.12.08 01:42
danke für die vielen antworten, aber irgendwie schade das man sich sowas "umständlich" zusammenschreiben muss
|
|
Hidden
      
Beiträge: 2242
Erhaltene Danke: 55
Win10
VS Code, Delphi 2010 Prof.
|
Verfasst: Mo 22.12.08 09:10
jakobwenzel hat folgendes geschrieben : | Delphi-Quelltext 1: 2: 3: 4:
| TPointCompare = record x,y:Integer; class operator Equal(p1,p2:TPointCompare):Boolean; end; | |
Eindeutig die beste Lösung: In eine Unit packen, die Unit einbinden und die punkte statt als TPoint als TPointCompare deklarieren. Dann kann überall sonst mit " if Point1 = Point2 then .." gearbeitet werden.
Du könntest natürlich auch deine Version von TPoint in der von Borland mitgelieferten Unit anpassen, aber das ist wohl leider nicht ganz unbedenklich, zumal dein Programm mit jeder anderen Version von Delphi dann ncihtmehr ohne weiteres compillierbar wäre.
mfG,
_________________ Centaur spears can block many spells, but no one tries to block if they see that the spell is a certain shade of green. For this purpose it is useful to know some green stunning hexes. (HPMoR)
|
|