![]() |
Zitat:
[================================================] Dieser Thread wurde von folgendem Thread abgetrennt, da die Inhalte beide diskussionswürdig sind, allerdings verschieden Voraussetzungen mit sich bringen. ![]() Mit freundlichen Grüßen, SAKURA |
Zitat:
Ich quotiere doch glatt noch einmal den Delphi-Language Guide: Zitat:
...:cat:... |
Ach du Schande, Sakura bringt tatsächlich die Grammatik. Hätte ich das vorher gewußt. :mrgreen:
Aber was hindert einen daran, den VAR Paramter als Rückgabewert zu benutzen. Wie bei einer Funktion :?: |
Wie gesagt, ich habe geschreiben, das man var-Parameter nutzen kann, aber das sind keine Prozedur-Rückgabe werden, es sind halt "[in|out] Parameter", welche einen Rückgabewert aufnehmen kann. Es ist ein kleiner, feiner Unterschied.
...:cat:... |
Dann schreibe doch wenigstens, warum. :shock: Man kann eine Prozedur nicht so übergeben:
Delphi-Quellcode:
Pseudocode halt :mrgreen:
var i : integer;
i := procedure Iwert aber schon als i := IFunction, wobei: Function IFunction : integer; |
Hansa, Du hast mit Deinem Ansatz aber völlig am Problem vorbei manövriert. Es geht hier um "Prozedurvariablen", welche eigentlich Pointer sind. Damit würde auch folgender Code problemlos gehen (Zuweisung einer Prozedur auf eine "Prozedurvariable")
Delphi-Quellcode:
Dabei wird Owhm F zugewiesen. Oehm ist eine Prozedur.
procedure Oehm(X, C: Integer);
begin ShowMessage(IntToStr(X + C)); end; procedure TForm1.Button1Click(Sender: TObject); var F: procedure (A, B: Integer); begin F := Oehm; F(1, 2); end; ...:cat:... |
Worum gehts denn hier eigentlich noch? Sicher doch nicht um den unterschied zwischen Funktionen (gibt einen Funktionswert zurück) und Prozeduren (gibt keinen Funktionswert zurück).
Das ist doch wieder so ein Punkt den C-Programmierer nehemn um Pascal bzw Delphi schlecht zumachen. Denn sie meinen es ist verwirrend da zu unterscheiden, immerhin gibt es in C ja nur Funktionen (mit und ohne Rückgabewert). Was die Parameterübergabe bei Prozeduren angeht, da sollte man erstmal in die Online Hilfe schauen :-) Stichwort: Parameter |
Zitat:
|
Das sind aber Parameter! da steckt ein andere Mechanismus hinter.
In Delphi gibt es 4 Parameterformen (Wert-, (Var) Variablen-, (const) Konstanten- oder (out) Ausgabeparameter) sie geben an wie die Variablen in der Routine behandelt wird. Bei VAR-Parametern wird KEINE neue Variable erzeugt, wie bei den anderen. im Prinzip wird nur ein Zeiger übergeben. Somit haben verönderungen in der Subroutine direkte Auswirkungen auf die Variable. Im Prinzip würde das auch bei Funktionen gehen. Aber Borland hat das eben nicht so vorgesehen. |
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:27 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