Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Prozeduren innerhalb einer Prozedur (https://www.delphipraxis.net/57664-prozeduren-innerhalb-einer-prozedur.html)

Puhbaehr 24. Nov 2005 21:10


Prozeduren innerhalb einer Prozedur
 
Hallo!

Ich stehe wiedereinmal vor einem Problem.

Ich hab ja die Möglichkeit Prozeduren innerhalb von Prozeduren zu setzen. Wie kann ich die zuvor deklarieren dass ich die Prozeduren untereinander aufrufen kann. Also:

Delphi-Quellcode:
procedure Hauptprozedur...;
  procedure eins...;
   begin
    // Prozedur zwei aufrufen
    zwei;
    // Kann nicht gefunden werden (undefinierter Bezeichner)
   end;

  procedure zwei...;
   begin
    // ...
   end;

  procedure drei...;
   begin
    // Prozedur eins aufrufen, funktioniert.
    eins;
   end;

var
  ...
 begin
  drei;
 end;
Normal würde ich wenn sie nicht in der Prozedur stehen würden in dem Interface-Teil der Unit deklarieren. Aber das funktioniert hier nicht bzw. ich weiß nicht wie.
Das Problem: Die Hauptprozedur (Beispielname) wird in einem Thread gestartet. Und um sicherzustellen dass die anderen Prozeduren die die Hauptprozedur nutzt Threadsicher sind möcht ich sie eben innerhalb der Prozedur deklarieren weil ich sie auch nur da brauche.

Wie mach ich das richtig?

Gruß, Robert

PS: Falls das Thema bereits existiert so entschuldigt bitte. Ich wusste nicht so recht nach was ich suchen sollte.

dfried 24. Nov 2005 21:19

Re: Prozeduren innerhalb einer Prozedur
 
Tja, das ist dann halt "klassische" Prozedurale Programmierweise (wie beim gutan alten Turbopascal).
Soll heissen, Jee Prozedur/Funktion kennt nur die Proceduren/Funktionen die VOR ihr deklariert wurden. Da kommt es also auf die Reihenfolge an in der du die Prozeduren anordnest.

In deinem Beispiel muesste dann also Prozedur 2 einfach vor Prozedur 1 deklariert werden, dann kennt die Prozedur 1 die 2 und kann Sie auch aufrufen.

Puhbaehr 24. Nov 2005 21:22

Re: Prozeduren innerhalb einer Prozedur
 
Also hab ich anders keine Chance? Mpf... die Reihenfolge Ändern würde nicht viel bringen da Prozedur zwei auch Prozedur eins benötigt (Bsp.). Dammig :wall:

Aber trotzdem Danke!

Ultimator 24. Nov 2005 21:23

Re: Prozeduren innerhalb einer Prozedur
 
Ich weiß nicht, ob das auch mit Prozeduren innerhalb von Prozeduren klappt, aber hast dus schonmal mit
Delphi-Quellcode:
 procedure Main;

procedure zwei; forward;

procedure eins;
begin
  zwei;
end;

procedure zwei;
begin
  ShowMessage('Hallo');
end;

//Main
begin
  eins;
end;
versucht?

//edit: Hab das gerade bei ner Buttonclick-Methode statt der hier obligatorischen "Main"-Methode verwendet und es klappt :)

Puhbaehr 24. Nov 2005 21:27

Re: Prozeduren innerhalb einer Prozedur
 
Muha!! Danke! :kiss: :hello: lol

Ultimator 24. Nov 2005 21:29

Re: Prozeduren innerhalb einer Prozedur
 
Zitat:

Zitat von Pubaehr
:kiss:

Nana, übertreibs mal nicht :lol:


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:07 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