Zitat von
s.h.a.r.k:
Wenn ich dann das Result aus der Funktion einer Variable übergebe und in Ihr etwas ändere, werden dann die Eigenschaften in der Komponente geändert oder muss ich als Ausgabe der Funktion dann Result := @...; angeben?!
Es kommt drauf an, was für Datentypen du zurückgeben lässt. Hier ein Teil der Delphi-Hilfe:
Zitat:
Für die Rückgabe von Funktionsergebnissen gelten folgende Konventionen.
- Funktionsergebnisse ordinalen Typs werden, wenn möglich, in ein CPU-Register zurückgegeben. Bytes werden in AL, Words in AX und Double Words in EAX zurückgegeben.
- Die Funktionsergebnisse der Real-Typen werden im Top-of-Stack-Register des Coprozessors für Gleitkommazahlen (ST(0)) zurückgegeben. Bei Funktionsergebnissen vom Typ Currency wird der Wert von ST(0) um den Faktor 10000 skaliert. Beispielsweise wird der Currency-Wert 1,234 in ST(0) als 12340 zurückgegeben.
- Strings, dynamische Arrays, Methodenzeiger oder Varianten werden so zurückgegeben, als ob das Funktionsergebnis als zusätzlicher var-Parameter nach den übrigen Parametern deklariert worden wäre. Die aufrufende Routine übergibt also einen zusätzlichen 32-Bit-Zeiger auf eine Variable, über die das Funktionsergebnis zurückgeliefert wird.
- Int64 wird in EDX:EAX zurückgegeben.
- Zeiger, Klassen, Klassenreferenzen und Prozedurzeiger werden in EAX zurückgegeben.
- Statische Arrays, Records und Mengen werden in AL zurückgegeben, wenn der Wert ein Byte belegt, in AX, falls der Wert zwei Byte belegt, und in EAX, falls vier Byte benötigt werden. Andernfalls wird der Funktion nach den deklarierten Parametern ein zusätzlicher var-Parameter übergeben, über den die Funktion das Ergebnis zurückliefert.
Aus deinen Worten schlussfolgere ich, das du willst, das du mit den zurückgegebenen Daten die Werte des Objektes ändern willst.
Imho ist es in diesem Fall sinnvoll mit Pointern ("@" usw.) zu arbeiten.
Aber: Ich glaube es geht ein wenig an den Prinzipien der Objektorientierung vorbei, wenn du mit diesem "Trick" die Werte änderst und nicht über die offiziell zur Verfügung gestellten "Setter-Methoden"
gehst.