![]() |
AW: Prozedur aus einer anderen Prozedur aufrufen
in XE6 (meiner Erfahrung nach zumindest) kann man einfach seine Prozedur aufrufen, wenn die parameter hat gibt man sie mit,w enn nicht dann nicht so einfach ist das...oder irre ich mich?!
|
AW: Prozedur aus einer anderen Prozedur aufrufen
Das ist schon immer so. Eine Prozedur oder Funktion, die keine Parameter erwartet benötigt beim Aufruf die zwei unnötigen Klammern () nicht. Das brauchen vielleicht andere Programmiersprachen, Pascal zumindest noch nie.
|
AW: Prozedur aus einer anderen Prozedur aufrufen
Das ist auch garantiert mindestens seit Delphi 7 so.
Es gibt Sprachen, da müssen Proceduren/Funktionen immer mit Parametern aufgerufen werden und sei es nur mit leeren
Delphi-Quellcode:
.
()
Die Verwunderung/Frage hier bestand nun nur noch darin, ob das auch in/vor Delphi 5 so war. Der TE meint es ginge nicht, aber andere Tests belegen, daß es doch ging. Meine "Vermutung": DiePprozedur wurde "anfangs" nach dem Aufruf deklariert. (nicht davor, bzw. ohne rechtzeitige Forwarddeklaration) |
AW: Prozedur aus einer anderen Prozedur aufrufen
Schon zu TurboPascal-Zeiten konnte man auf leere Klammern () beim Aufruf einer Prozedur verzichten, das ist also nichts delphispezifisches.
Wenn es natürlich mehrere Sachen gibt, die test heißen (z.B. eine procedure und eine Variable), dann kanns natürlich echt zum Chaos kommen. |
AW: Prozedur aus einer anderen Prozedur aufrufen
Chaos nicht wirklich.
Es wird ja immer das Test genommen, was als letztes sichtbar ist. |
AW: Prozedur aus einer anderen Prozedur aufrufen
Zitat:
Soviel zu "noch nie" ;-) |
AW: Prozedur aus einer anderen Prozedur aufrufen
Zitat:
|
AW: Prozedur aus einer anderen Prozedur aufrufen
Zitat:
Delphi-Quellcode:
Aber mit dem aktuellen XE7 funktioniert das, beim Delphi7 hat er aber AFAIR noch gemault, dass er Typ Funktion nicht in Integer verwandelt könne.
type
TFunc=Function(): Integer; Function Bar(): Integer; begin Result := 42; end; var pFunc: TFunc; funcResult: Integer; begin pFunc := Bar; funcResult := pFunc; end. |
AW: Prozedur aus einer anderen Prozedur aufrufen
OK, sowas gabs unter TurboPascal noch nicht.
|
AW: Prozedur aus einer anderen Prozedur aufrufen
Delphi führt an vielen Stellen eine automatische (De)Referenzierung durch.
* Prozedurvariablen * zuweisen von Prozedurzeigern (x:=@proc = x:=proc) * Record-Pointer ... sobald da ein Punkt folgt, kann man das ^ weglassen (p^.x = p.x) (nur bei mehrfachen Pointern muß man aufpassen) Ist vorallem praktisch, da man den Code später fast problemlos auf Daten-Objekte/Interfaces umstellen kann. :angle: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:52 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