Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi class operator (https://www.delphipraxis.net/81463-class-operator.html)

xZise 27. Nov 2006 21:01


class operator
 
Ich habe seit kurzem Delphi Turbo, und eigentlich ist es ja BDS 2006.
Jetzt wollte ich wissen, wie ich "class operator"s schreiben kann?

Ich habe sowas, aber er meint, er erkennt nur var, prozedure oder function.

Delphi-Quellcode:
type
  TForm1 = class(TForm)
  private
[...]
  public
    class operator equal(a: TPoint; b : TPoint) : Boolean;
  end;

SirThornberry 27. Nov 2006 21:03

Re: class operator
 
solche operatoren funktionieren soweit ich weiß nur bei Recordtypen. Was genau hast du denn vor? Willst du einen Klassenfunktion schreiben? Denn nach den Parametern zu Urteilen willst du nicht wirklich einen ClassOperator für eine Klasse schreiben.

mkinzler 27. Nov 2006 21:04

Re: class operator
 
Uner Win32 werden Class Operators nur bei Record unterstützt.

xZise 27. Nov 2006 21:09

Re: class operator
 
@ mkinzler:
Okay... Schade ;) Werde wohl einen eigenen TPoint erstellen.

@ Thornberry: Ich habe vor, dass ich zwei TPoints einfach über "=" vergleichen kann (und da bietet sich ja es gerade zu an c.o. zu nehmen)

SirThornberry 27. Nov 2006 21:11

Re: class operator
 
die Frage ist ob er wirklich DEN ClassOperator verwenden will. Denn bei seinem equal sind beide Parameter nicht vom Typ seiner Klasse was darauf hindeutet das es gar nicht als Klassoperator ausgelegt werden soll.
Wenn ich nicht ganz falsch liege sollte doch mindestens einer der Parameter vom Typ des Records sein damit eben dieser Record verglichen werden kann. Anders würde es doch keinen Sinn machen oder doch?

Wenn du zwei TPoint vergleichen willst wäre es doch sinnvoller TPoint neu zu declarieren und dort den Class-Operator hinzuzufügen.

St.Pauli 27. Nov 2006 22:01

Re: class operator
 
Zitat:

Zitat von SirThornberry
die Frage ist ob er wirklich DEN ClassOperator verwenden will. Denn bei seinem equal sind beide Parameter nicht vom Typ seiner Klasse was darauf hindeutet das es gar nicht als Klassoperator ausgelegt werden soll.
Wenn ich nicht ganz falsch liege sollte doch mindestens einer der Parameter vom Typ des Records sein damit eben dieser Record verglichen werden kann. Anders würde es doch keinen Sinn machen oder doch?

Ich verstehe nicht warum du dir darüber gedanken machst, da man Operatoren, wie du schon erwähnt hast ja eh nur in Records überladen kann... :wink:

Hatte heute das gleiche Problem. Ich hatte die Delphi-Hilfe zu Rate gezogen. Leider ist die etwas verwirrend, da sie .NET-Beispiele enthält, was man auch ersteinmal herausfinden muss.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:37 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 by Thomas Breitkreuz