-
Forum: Object-Pascal / Delphi-Language
Delphi
by Hansa,
4. Jul 2003
Na also, auch hier hat jeder Recht :lol:, aber eines fehlt noch (insbesondere für Anfänger gefährlich) : Manchmal macht es eher Sinn, einen berechneten Wert in einer Variablen zu speichern, anstatt ihn dauernd neu zu berechnen. Aus Sakuras Millisekunden werden sonst tatsächlich spürbare Wartezeiten. Dies gilt insbesondere für Datenbank-Zugriffe innerhalb einer Funktion.
-
Forum: Object-Pascal / Delphi-Language
Delphi
by Hansa,
4. Jul 2003
ach, wie ist das herrlich. Was liebe ich solche Grundsatzdiskussionen. 8) Könnte fast ein C++ - Forum sein. :mrgreen: Schlimm ist, daß Sakura Recht hat. :lol: Bei Funktionen können auch mehrere VAR Parameter übergeben werden. Und sie können, wie er richtig sagt, direkt für weitere Berechnungen benutzt werden.
Für mich ist letzteres der einzige Grund, Funktionen zu benutzen. Ansonsten ist es...
-
Forum: Object-Pascal / Delphi-Language
Delphi
by Hansa,
4. Jul 2003
Halte mich eben hier dran :wink: :
Was da technisch jetzt genau passiert, interessiert mich in der Regel wirklich nicht. Aber vielleicht kann mir mal jemand erklären, wann es zwingend nötig ist eine Funktion bzw. Prozedur zu verwenden und warum. 8) Worauf Assarbad hinaus will, ist wahrscheinlich das hier :
procedure Test (CONST r : real);
und
procedure Test (VAR r : real);
-
Forum: Object-Pascal / Delphi-Language
Delphi
by Hansa,
4. Jul 2003
Das war vielleicht nicht leicht zu verstehen, ich meine das hier:
function Test : integer;
begin
result := 5;
end;
Das ist nicht als CONST deklariert, stimmt, aber trotzdem nicht variabel, außerdem macht es keinen Sinn solch eine Funktion zu verwenden. Es ist halt ein Beispiel.
-
Forum: Object-Pascal / Delphi-Language
Delphi
by Hansa,
3. Jul 2003
Ja klar, alles. Genau das habe ich geschrieben. C++ läßt halt grüßen an die Verwandtschaft. Und was wäre, wenn ich die 5 nicht innerhalb der Prozedur als Konstante verwendet hätte ??? Was würde dann angezeigt ? :mrgreen:
-
Forum: Object-Pascal / Delphi-Language
Delphi
by Hansa,
3. Jul 2003
procedure Test (VAR i : integer);
begin
i := 5;
end;
Wieso ist da kein Rückgabewert ???
-
Forum: Object-Pascal / Delphi-Language
Delphi
by Hansa,
3. Jul 2003
Viel einfacher gehts wirklich nicht. :|
Das ist wahrscheinlich eines der kleinsten Programme der Welt. Mir fällt jedenfalls nicht ein, wie es noch kleiner werden könnte. Läßt Du das Programm laufen, was wird dann angezeigt? 5 oder 8 ???
Das ist ein Rätsel, wo die Lösung gleich mitgeliefert wird. :mrgreen:
-
Forum: Object-Pascal / Delphi-Language
Delphi
by Hansa,
3. Jul 2003
unit TestUnit;
Interface
procedure Test (VAR i : integer);
implementation
procedure Test (VAR i : integer);
begin
-
Forum: Object-Pascal / Delphi-Language
Delphi
by Hansa,
3. Jul 2003
ich verstehe das genauso wenig, wie Du. 8) Wenn ich folgenden Code habe:
procedure Test (VAR i : integer);
begin
i := 5;
end;
was steht dann hier drin ? :
-
Forum: Object-Pascal / Delphi-Language
Delphi
by Hansa,
3. Jul 2003
Kommst Du etwa aus der falschen Richtung ? Oder ich ?
-
Forum: Object-Pascal / Delphi-Language
Delphi
by Hansa,
3. Jul 2003
Eine Prozedur gibt keinen Funktionswert zurück, aber einen VAR-Parameter. Eine Function gibt nur EINEN zurück, Prozeduren mehrere.
-
Forum: Object-Pascal / Delphi-Language
Delphi
by Hansa,
3. Jul 2003
Dann schreibe doch wenigstens, warum. :shock: Man kann eine Prozedur nicht so übergeben: var i : integer;
i := procedure Iwert
aber schon als i := IFunction, wobei:
Function IFunction : integer;
Pseudocode halt :mrgreen:
-
Forum: Object-Pascal / Delphi-Language
Delphi
by Hansa,
3. Jul 2003
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 :?:
-
Forum: Object-Pascal / Delphi-Language
Delphi
by Hansa,
3. Jul 2003
Da bitte ich aber mal um Erläuterung.
Dieser Thread wurde von folgendem Thread abgetrennt, da die Inhalte beide diskussionswürdig sind, allerdings verschieden Voraussetzungen mit sich bringen.
http://www.delphipraxis.net/viewtopic.php?t=6884
Mit freundlichen Grüßen,
SAKURA