Hi,
1. Mal zur Korrektur: Properties als Adresse/Zeiger übergeben zu wollen ist einfach nur falsch.. Properties sind syntaktische Mittel um Zugriffe auf Attribute/Methoden einzuschränken/zu erlauben (und noch ein paar Sachen mehr). Daher auch der Fehler "Variable identifier expected" -> Property ist keine Variable/Funktion/etc. im engeren Sinne.
Aus der Dokumentation:
http://www.freepascal.org/docs-html/ref ... 870006.4.1" onclick="window.open(this.href);return false;
".. properties cannot be passed as var arguments to a function or procedure, since there is no known address of the property (at least, not always)"
@MAC:
MAC hat geschrieben:aber was spricht gegen die normale benutzung von pointern.
Die Art wie du es machst, gibt einen Zeiger auf den "Wert" des Properties zurück.
Das ähnlicher Code nicht bei Ecliptic läuft kann an unterschiedlichen Compiler Versionen oder Modes (Delphi/ObjFPC unterscheiden sich stärker wenn es um Pointer geht) liegen.
2. Wie meine Vorredner schon angemerkt habe. Es gibt andere/sichere/bessere Möglichkeiten.
Die anfängliche Frage klingt für mich so: "Ich möchte auf mehreren Objekten einer/mehrerer Klassen eine Funktion nutzen."
Klingt nach einem typischen Fall von OOP..
Wenn alle "Devices" von einem Typen TDevice abgeleitet sind der das entsprechende Propertie tägt -> Objekt übergeben und auf Property
zugreifen. (von diesem Fall geh ich mal aus, wenn die dahinter liegenden Methoden Virtuell sind, würde es keinen Sinn machen das Property erst in abgeleiteten Klassen einzuführen)
Wenn die Klassen unterschiedlich sind, die Properties unterschiedlich benannt etc.. dann gibt es auch wieder einfache Mechanismen, wie das abfragen der Klasse und entsprechenden Zugriff...
</senf>