![]() |
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:
|
AW: Sichtbarkeit Prozduren in Prozeduren
Zitat:
|
AW: Sichtbarkeit Prozduren in Prozeduren
Zitat:
|
AW: Sichtbarkeit Prozduren in Prozeduren
Vielen Dank.
|
AW: Sichtbarkeit Prozduren in Prozeduren
Das riecht eher nach einer eigenen Klasse, als nach Prozeduren, in Prozeduren, die zudem noch so komplex scheinen, das sie sich gegenseitig aufrufen. Muss nicht sein, wäre aber in jeder anderen Sprache ein Fall für eine neue Klasse.
Ich persönlich finde die kleinen Lokalenprozedurhelferlein sehr praktisch, weil das das 'R' in RAD betont. Es ist eben immer noch schneller, eine komplexe Methode in ein paar lokalen Prozeduren zu kapseln und auch einigermaßen lesbar zu machen (wenn man denn das erste
Delphi-Quellcode:
der Prozedur überhaupt findet).
Begin
Aber 'schneller' ist nicht gleich 'besser'. Zitat:
|
AW: Sichtbarkeit Prozduren in Prozeduren
Zitat:
Delphi-Quellcode:
Procedure Komplex;
// Sub 1 DoSomeThing & DoItAgain Procedure SubProcedure1; Begin DoSomeThing; DoItAgain; End; // ********** Hauptprocedure ********************************* Begin End; |
AW: Sichtbarkeit Prozduren in Prozeduren
Zitat:
Delphi-Quellcode:
procedure Komplex;
procedure SubProcedure1; begin DoSomeThing; DoItAgain; end; begin end; |
AW: Sichtbarkeit Prozduren in Prozeduren
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:03 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