![]() |
Prototypen wie in C
man betrache folgenden code:
Delphi-Quellcode:
...okok es würde nix gemacht werden (bis auf einen stack overflow :wink:), aber darum geht es nicht. das problem ist dass sich nur prozeduren(/funktionen) aufrufen lassen die vor ihrem aufruf bereits im quelltext geschrieben sind. in dem obigen fall ist es jedoch unmöglich eine solche reihenfolge zu finden! in c würde man einfach prototypen schreiben, aber was macht man da in object-pascal :?:
procedure a;
begin b; end; procedure b; begin c; end; procedure c; begin a; end; begin a; end. thx |
Jede Unit besteht u.a. aus einen interface und einem implementation-Teil. Im Interface-Teil können Programmroutinen vor der Definition deklariert werden.
Bei dir sähe das dann so aus:
Delphi-Quellcode:
unit Unit1;
interface procedure a; procedure b; procedure c; implementation //...deine Prozeduren und die Hauptprozedur end. |
Eine andere Möglichkeit:
Delphi-Quellcode:
procedure a; forward;
procedure b; forward; procedure c; forward; procedure a; begin b; end; ... |
und wie wuerde das beispielsweise bei klassen aussehen?
wenn ich also eine unit habe mit x klassen, alle sind in irgendweiser von einander abhaengig (z.B. eigene klassen mit eigenen klassenlisten). wenn ich jetzt im nachhinein eine neue klassen einbaue, muss ich immer verdammt aufpassen von ich die klassen deklariere. gibt es vielleicht ne moeglichkeit, dass ich alle Klassen im vorfeld deklariere (prototyp) |
Ebenfalls entsprechend einfach.
Delphi-Quellcode:
type
TClass2 = class; TClass3 = class; TClass1 = class(TObject) FClass2: TClass2; end; TClass2 = class(TComponent) FClass3: TClass3; end; TClass3 = class(TControl) FClass1: TClass1; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:47 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