Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Delphi Logische Operatoren als Aufzählungstyp (https://www.delphipraxis.net/183185-logische-operatoren-als-aufzaehlungstyp.html)

bernau 18. Dez 2014 10:23

Logische Operatoren als Aufzählungstyp
 
Wir sind mal wieder beim Thema "Rad nicht neu erfinden".

Ich möchte einer Funktion mehrere Werte als Array übergeben und diese sollen logisch verknüpft werden. Die Verknüpfungsart soll als Parameter übergeben werden.

Beispiel

Delphi-Quellcode:
result1 := meineFunktion(loOr,[Value1,Value2,Value3]);
result2 := meineFunktion(loAnd,[Value1,Value2,Value3]);
Ich kann natürlich loOr oder loAnd usw. selber definieren.

Delphi-Quellcode:
type
  TLogicalOperators = (loOr, loAnd, loXor, loNOr, loNAnd, loNXor);
Aber bei meinem Glück ist dieser Aufzählungstyp schon irgenwo definiert.

Jemand eine Ahnung wo das definiert sein könnte?

Sherlock 18. Dez 2014 10:49

AW: Logische Operatoren als Aufzählungstyp
 
Dein Delphi sollte wissen, wo es schon definiert wurde. Spontan würde ich einen der fraglichen Bezeichner markieren und über Refactor-> Unit suchen die vorherige Deklaration ermitteln. andererseits dürfte es einfacher sein, die Biester umzubenennen.

Sherlock

Der schöne Günther 18. Dez 2014 12:26

AW: Logische Operatoren als Aufzählungstyp
 
Nicht dass ich wüsste, vermutet hätte ich so etwas in
Delphi-Quellcode:
System.Math
oder
Delphi-Quellcode:
System.Types
. Aber da finde ich nichts.

bernau 18. Dez 2014 12:27

AW: Logische Operatoren als Aufzählungstyp
 
Zitat:

Zitat von Der schöne Günther (Beitrag 1283905)
Nicht dass ich wüsste, vermutet hätte ich so etwas in
Delphi-Quellcode:
System.Math
oder
Delphi-Quellcode:
System.Types
. Aber da finde ich nichts.

Da habe ich auch schon geschaut.

Ich werde es dann selber definieren.

bernau 18. Dez 2014 12:30

AW: Logische Operatoren als Aufzählungstyp
 
Zitat:

Zitat von Sherlock (Beitrag 1283885)
Dein Delphi sollte wissen, wo es schon definiert wurde. Spontan würde ich einen der fraglichen Bezeichner markieren und über Refactor-> Unit suchen die vorherige Deklaration ermitteln. andererseits dürfte es einfacher sein, die Biester umzubenennen.

Sherlock

Wie gesagt. Ich weis nicht, ob es überhaupt definiert ist. Die Bezeichner im Beispiel hatte ich mir ausgedacht. Da ich aber kein Paralleluniversum entwickeln will, dachte ich, daß ich mal so in die Runde frage.

himitsu 18. Dez 2014 12:35

AW: Logische Operatoren als Aufzählungstyp
 
Auch wenn ich nicht glaube, daß es NOr, NAnd und NXor irgendwo im Delphi geben wird,
kann man doch einfach mal in den Delphi-Quellcodes danach suchen lassen?

Delphi-Quellcode:
([a-z_]+nor)
+ nur ganze Wörter :stupid:

Neutral General 18. Dez 2014 12:41

AW: Logische Operatoren als Aufzählungstyp
 
Ich denke nicht dass es sowas schon gibt aber ganz ehrlich gesagt würde ich mir für so ein kleines Enum nicht so viele Gedanken oder sogar so einen Thread machen.
Du hast dir jetzt minuten- oder vllt sogar stundenlang (was ich nicht hoffe^^) Gedanken gemacht und einen relativ langen Beitrag geschrieben um herauszufinden ob du dir diesen 1-Zeiler möglicherweise sparen kannst:

Delphi-Quellcode:
TLogicalOperators = (loOr, loAnd, loXor, loNOr, loNAnd, loNXor);
:P :wink:

Selbst wenn du später (durch Zufall) herausfinden solltest dass es sowas schon gibt sollte das duch Refactoring im Zweifelsfall schnell umgestellt sein ;)

Mavarik 18. Dez 2014 12:42

AW: Logische Operatoren als Aufzählungstyp
 
Wie wäre es mit einem lokalen Typen der Klasse?

Dejan Vu 18. Dez 2014 12:48

AW: Logische Operatoren als Aufzählungstyp
 
Man kann zwei Listen miteinander verknüpfen und -soweit ich mich erinnere- einen Verknüpfungsoperator mit angeben. Ich meine, die heißen 'loAnd' (nur, was in beiden ist) 'loOr' etc. ('lo'=ListOperation). Obwohl, da bin ich mir nicht so sicher, ich kann mich aber an loXor erinnern.

Wieso führst Du überhaupt einen Enum ein? Schreib doch einfach die paar Methoden separat? Oder mach es mit einzelnen Klassen. Dann verzichtest Du auf dein 'case'-Statement, was in einer sauberen Methode ohnehin nichts zu suchen hat (sagen die Puristen).

Mavarik 18. Dez 2014 13:11

AW: Logische Operatoren als Aufzählungstyp
 
Zitat:

Zitat von Dejan Vu (Beitrag 1283919)
Wieso führst Du überhaupt einen Enum ein? Schreib doch einfach die paar Methoden separat? Oder mach es mit einzelnen Klassen. Dann verzichtest Du auf dein 'case'-Statement, was in einer sauberen Methode ohnehin nichts zu suchen hat (sagen die Puristen).

Operator overloading?


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:16 Uhr.
Seite 1 von 3  1 23      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz