AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Interface + (Record)Operatoren [MiniMathLib]
Thema durchsuchen
Ansicht
Themen-Optionen

Interface + (Record)Operatoren [MiniMathLib]

Ein Thema von himitsu · begonnen am 1. Feb 2009 · letzter Beitrag vom 21. Feb 2009
 
Benutzerbild von stoxx
stoxx

Registriert seit: 13. Aug 2003
1.111 Beiträge
 
#9

Re: Interface + (Record)Operatoren [MiniMathLib]

  Alt 1. Feb 2009, 23:21
aber da isses recht aufwendig dort mehrere Typen miteinander zu verknüpten, da jeder Record ein eigener Datentyp ist hmm .. war das Dein Hauptgrund?
das ist doch eigenltich einfach ... entweder Du lässt es von der impliziten Typumwandlung erledigen.

etwa so dann ...

Delphi-Quellcode:
    // Kategorie: Unäre Operatoren
    class operator Negative(const AValue: FIXCOMMA64): FIXCOMMA64;
    class operator Positive(const AValue: FIXCOMMA64): FIXCOMMA64;
    class operator Trunc(const AValue: FIXCOMMA64): Int64;
    class operator Round(const AValue: FIXCOMMA64): Int64;
    class operator Inc(const AValue: FIXCOMMA64): FIXCOMMA64;
// class operator Inc(const AValue1, AValue2: FIXCOMMA64): FIXCOMMA64;
    class operator Dec(const AValue: FIXCOMMA64): FIXCOMMA64;

    // Kategorie: Binäre Operatoren
    class operator Add(const Left, Right: FIXCOMMA64): FIXCOMMA64;
    class operator Subtract(const Left, Right: FIXCOMMA64): FIXCOMMA64;
    class operator Multiply(const Left, Right: FIXCOMMA64): FIXCOMMA64;
    class operator Divide(const Left, Right: FIXCOMMA64): FIXCOMMA64;
    class operator IntDivide(const Left, Right: FIXCOMMA64): FIXCOMMA64;
    class operator Modulus(const Left, Right: FIXCOMMA64): FIXCOMMA64;

    // Kategorie: Vergleichsoperatoren
    class operator Equal(const Left, Right: FIXCOMMA64): Boolean; inline;
    class operator NotEqual(const Left, Right: FIXCOMMA64): Boolean; inline;
    class operator LessThan(const Left, Right: FIXCOMMA64): Boolean; inline;
    class operator LessThanOrEqual(const Left, Right: FIXCOMMA64): Boolean; inline;
    class operator GreaterThan(const Left, Right: FIXCOMMA64): Boolean; inline;
    class operator GreaterThanOrEqual(const Left, Right: FIXCOMMA64): Boolean; inline;

    // Kategorie: implicite Konvertierung
    class operator Implicit(const AValue: FIXCOMMA64) : FIXCOMMA40; inline;
    class operator Implicit(const AValue: FIXCOMMA40): FIXCOMMA64; inline;
    class operator Implicit(const AValue: FIXCOMMA64) : FIXCOMMA32; inline;
    class operator Implicit(const AValue: FIXCOMMA32): FIXCOMMA64; inline;
    class operator Implicit(const AValue: FIXCOMMA64) : FIXCOMMA24; inline;
    class operator Implicit(const AValue: FIXCOMMA24): FIXCOMMA64; inline;

    class operator Implicit(const AValue: DWORD): FIXCOMMA64;inline;
    class operator Implicit(const AValue: Integer): FIXCOMMA64; inline;
    class operator Implicit(const AValue: Int64): FIXCOMMA64; inline;

    class operator Implicit(const AValue: FIXCOMMA64) : Single;inline;
    class operator Implicit(const AValue: Single): FIXCOMMA64; inline;
    class operator Implicit(const AValue: FIXCOMMA64) : double;inline;
    class operator Implicit(const AValue: double): FIXCOMMA64; inline;
    class operator Implicit(const AValue: FIXCOMMA64) : extended; inline;
    class operator Implicit(const AValue: extended): FIXCOMMA64; inline;

    class operator Implicit(const AValue: FIXCOMMA64) : TFLOAT;inline;
    class operator Implicit(const AValue: TFLOAT): FIXCOMMA64; inline;
    class operator Implicit(const AValue: TINT32): FIXCOMMA64; inline;
    class operator Implicit(const AValue: TDWORD): FIXCOMMA64; inline;
    class operator Implicit(const AValue: String): FIXCOMMA64; inline;
end; // FixComma64

oder aber, Du definierst Dir für jeden Datentyp die Operatiren neu...
Für jede Seite ..
aber wie gesagt, mit der impliziten Typumwandlung kommt man doch schon recht weit eigentlich?
Delphi-Quellcode:
class operator Add(const Left : Double, Right: FIXCOMMA64): FIXCOMMA32;
class operator Add(const Left : FIXCOMMA64, Right: Double): FIXCOMMA32;
Phantasie ist etwas, was sich manche Leute gar nicht vorstellen können.
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:19 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