Kroko hat folgendes geschrieben: |
jaenicke hat folgendes geschrieben: | Kroko hat folgendes geschrieben: | PS: Gilt hier nicht mehr, neue Frage neuer Thread  |
Ist doch immer noch dasselbe Problem...  |
function Division...
=ReportSaveDialog(Query).SSaveName
 |

Meine Funktion Division war doch nur ein Beispiel, danach war doch gar nicht gefragt! Dass die Funktion nun ReportSaveDialog heißt, um die es geht, ist doch egal...
mexx hat folgendes geschrieben: |
jaenicke hat folgendes geschrieben: | Du solltest den Rückgabewert zunächst in eine Variable vom Typ des Records speichern . |
Dann erachte ich diese Lösung als eher unangenehm und nicht so praktisch. |
Ähm, wie willst du denn mit zwei Rückgabewerten gleichzeitig arbeiten ohne zumindest einen davon zwischenzuspeichern???
Und an meinem Beispiel siehst du, wie du innerhalb einer "Abfrage" mit dem zweiten Ergebnis gleich weiterarbeiten kannst (dann mit dem übergebenen Speicherort für den zweiten Rückgabewert als out-Parameter).
Ohne eine Variable UND ohne einen Neuaufruf der Funktion ist es IMHO vollkommen unmöglich! Und zwar nicht nur in Delphi...
Wenn du ohne Variable auskommen musst/willst, dann ist dein Konzept ähh... sagen wir... IMHO nicht sinnvoll.
Ich sehe auch keinen Grund, warum man das irgendwo ohne Variable machen müsste. Wirklich! Das meine ich ernst! Ich sehe keinen Fall, wo das nur ohne Variable ginge/sinnvoll wäre....
Wenn das bei dir nicht geht, dann solltest du vielleicht mal sagen, warum. Vor allem, weil du doch sogar globale Variablen als Möglichkeit in Betracht gezogen hast.
Mit denen kannst du es durchaus machen. Würde ich zwar nicht so machen, aber es geht damit.
BTW: Wenn du die Windows API verwendest, dann kommst du um Variablen als Parameter, in die der Rückgabewert reinkommt, nicht herum. (Ob man die API jetzt in Zeiten der OOP als Beispiel nehmen sollte, sei mal dahingestellt...

)