Diskussion:Programmierkurs: Delphi: Pascal: Records

Seiteninhalte werden in anderen Sprachen nicht unterstützt.
Aus Wikibooks

Result?[Bearbeiten]

Wo kommt in der Funktion GastEinlassen die Variable Result her? Sollte die automatisch vorhanden sein? Der Free Pascal Compiler sagt jedenfalls: Error: Identifier not found "Result" -- 188.193.213.5 02:57, 16. Apr. 2010

Das ist eigentlich ein generelles Problem von Programmierkursen: Damit sinnvolle Beispiele gebracht werden können, muss immer wieder einmal auf spätere Themen vorausgegriffen werden, hier auf Prozeduren und Funktionen. Allerdings wird auch dort "Result" nur in einer Randbemerkung benutzt und nicht ausdrücklich erläutert.
Bei Funktionen muss das Ergebnis (natürlich) als Rückgabewert zugewiesen werden. Dies geschieht entweder durch Zuweisung an eine fiktive Variable, die den Namen der Funktion trägt, oder an eine (automatisch bekannte) Variable Result. Die folgenden Varianten sind gleichwertig:
function GastEinlassen(AGast: TGast): Boolean;
begin
  if AGast.eingeladen then
    GastEinlassen := True
  else
    GastEinlassen := AGast.erwuenscht;
end;
Variante 2:
function GastEinlassen(AGast: TGast): Boolean;
begin
  if AGast.eingeladen then
    Result := True
  else
    Result := AGast.erwuenscht;
end;
Aber man kann es sowieso kürzer schreiben:
function GastEinlassen(AGast: TGast): Boolean;
begin
  Result := AGast.eingeladen or AGast.erwuenscht;
end;
Mich wundert allerdings sehr, dass dein Compiler diesen Namen nicht kennt. Versuche es einmal mit dem Namen der Funktion. -- Gruß Jürgen 08:44, 16. Apr. 2010 (CEST)[Beantworten]
Bitte unterschreibe auf Diskussionsseiten mit 4 Tilden ~~~~, damit man Fragen und Antworten leichter zuordnen kann. Danke!
Danke für die Hilfe. Ich habe inzwischen herausgefunden, dass man den Free Pascal Compiler entweder mit fpc -MDelphi aufrufen, oder {$MODE DELPHI} in die Quelldatei schreiben muss, damit die Pseudovariable Result erstellt wird. hp_sebastian 13:53, 16. Apr. 2010 (CEST)[Beantworten]
Wäre das nicht ein genereller Hinweis, der nicht nur hier von Bedeutung ist? Sollte er dann nicht besser in eines der Einleitungskapitel passen, nämlich dort, wo über Delphi und FP gesprochen wird? -- Jürgen 16:44, 16. Apr. 2010 (CEST)[Beantworten]
Also bis jetzt kompilierten alle Beispiele in diesem Buch ohne besondere Compilerflags, ich bin nur bei Result darüber gestolpert. Aber ich gebe Dir recht, es hat eigentlich nichts mit dem Thema zu tun, sondern ist ein genereller Hinweis. Darum schlage ich vor, im Vorwort einen kurzen Abschnitt über jeden Compiler zu erstellen, wo dieser Hinweis Platz finden könnte. hp_sebastian 17:21, 16. Apr. 2010 (CEST)[Beantworten]