![]() |
Sichtbarkeit Prozduren in Prozeduren
Hallo,
ich habe ein Programm in Delphi 2007, in dem in einer Prozedur ein Dutzend anderer enthalten sind. Eine davon würde ich gern splitten, um keine Code-Kopien zu erzeugen. Dazu müsste die neue Prozedur aber von den inneren Prozeduren gesehen/aufgerufen werden können. Gibt es so eine Möglichkeit? Ich habe das mal als Pseudo-Code zusammengeschrieben.
Delphi-Quellcode:
Notfalls könnte ich KindN in Kind1 reinschreiben.
procedure TMyParent.IchBinGanzOben;
procedure Kind1; begin //hier soll KindN aufgerufen werden können end; procedure KindN; begin //ausgelagerter Code end; begin //hier wird Kind1 aufgerufen end; |
AW: Sichtbarkeit Prozduren in Prozeduren
... einfach KindN vor Kind1 verschieben ;-)
Wenn Du gegenseitige Aufrufe brauchst müsstest Du die Prozeduren als (private oder protected) Methoden deklarieren. |
AW: Sichtbarkeit Prozduren in Prozeduren
Zitat:
|
AW: Sichtbarkeit Prozduren in Prozeduren
Zitat:
|
AW: Sichtbarkeit Prozduren in Prozeduren
Lokal und gegenseitiger Aufruf geht schlecht zusammen, oder?
|
AW: Sichtbarkeit Prozduren in Prozeduren
Zitat:
Delphi-Quellcode:
procedure IchBinGanzOben;
procedure KindN; forward; procedure Kind1; begin KindN; end; procedure KindN; begin Kind1; end; begin //hier wird Kind1 aufgerufen end; |
AW: Sichtbarkeit Prozduren in Prozeduren
Hast ja gewonnen.
|
AW: Sichtbarkeit Prozduren in Prozeduren
Ahh! Wusste ich gar nicht...
Um so besser. |
AW: Sichtbarkeit Prozduren in Prozeduren
Oder Kapselung einzuführen.
Delphi-Quellcode:
TSomeKinds = record
private FSomeInput: TSomeInput; FSomeOutput: TSomeOutput; procedure DoSomething; procedure DoSomethingElse; public procedure Kind1; procedure Kind2; procedure KindN; property SomeInput: TSomeInput read FSomeInput write FSomeInput; property SomeOutput: TSomeOutput read SomeOutput write FSomeOutput; end; procedure TMyParent.IchBinGanzOben; begin FSomeKinds.Kind1; end; |
AW: Sichtbarkeit Prozduren in Prozeduren
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:20 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