Announcement

Collapse
No announcement yet.

Springe zu einer Procedure ...?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Springe zu einer Procedure ...?

    Hallo,

    irgendwie versteh ich Delphi (Pascal) manchmal nicht.
    Wenn ich innerhalb eine VB-Programmes zu einer ganz bestimmten Funktion (Sub) springen will, reicht ein einfacher Aufruf des Namens. In Delphi bekomme ich es nicht hin!
    Kann mir jemand weiterhelfen?
    Servus!
    Torsten

  • #2
    procedure subproc; <br>
    begin<br>
    // Source
    end;<br><br>
    procedure main;<br>
    begin<br>
    subproc;<br>
    end;<br><br>
    Es braucht einfach nur der Procedurename angegeben werden. Wichtig ist das die Sub-Procedure immer über der aufrufenden Procedure steht. Falls die Sub-Procedure in einer anderen UNIT steht, muss diese Unit mit in die USES-Klausel entweder der aufrufenden Procedure oder der Unit der aufrufenden Procedure.<br><br>
    Es kann noch der Fall enstehen, das sich Proceduren im "Kreis" aufrufen. Da immer eine Procedure über der anderen steht ist immer eine Deklarationsmässig benachteiligt. Für diesen Fall gibts die FORWARD-KLausel (Ich hab die glaub noch nie benutzt. FORWARD steht bei mir in der Beliebtheitsskala in der Nähe von GOTO ;-)). Das sieht dann in etwa so aus:<br><br>
    forward procedure sub1;<br><br>
    procedure sub2;<br><br>
    begin<br>
    sub1;<br>
    end;<br><br>
    procedure sub1;<br><br>
    begin<br>
    sub2;<br>
    end;<br><br>
    Das ist zwar eine Endlosschleife und voll schwachsinnig aber das Beispiel soll auch nur den Syntax zeigen. Ach ja diese Regeln gelten für Proceduren und Functionen gleichermassen.<br><br>
    ich hoffe ich konnte dir helfen<br><br>bye fran

    Comment


    • #3
      Hallo Frank,

      vielen Dank für Deine Antwort. Ich kann es auch nicht so richtig verstehen, aber genau so funktioniert es bei mir nicht. Es kommt zu einer Syntax Fehlermeldung "Nicht genügend wirkliche Parameter".
      Servus!
      Torste

      Comment


      • #4
        procedure Sub1; forward; ist richtiger

        Comment


        • #5
          Moin Torsten,<br>
          <br>
          dann benötigt die Prozedure einen oder mehrere Parameter.<br>
          <br>
          Ciao<br>
          Chri

          Comment


          • #6
            Dann rufst du eine Procedure mit Parametern auf, in etwa so:<br><br>
            Procedure SubParm(VAR1:Integer; VAR2:string);<br>
            begin<br>
            //Quelltext<br>
            end;<br><br>
            Procedure Main;<br>
            begin<br>
            subparm(1, 'asdf'); // Richtiger Aufruf<br>
            subparm; // Nicht genügend wirkliche Parameter<br>
            subparm(1); // Nicht genügend wirkliche Parameter<br>
            end;<br><br>
            Wenn Du die Procedure selber geschrieben hast, solltest du wissen wie viele Parameter diese benötigt. Falls es eine Delphiprocedure ist, und Du es nicht genau weisst schau kurz in die Hilfe. Evtl. werden Dir auch die erwarteten Parameter angezeigt, wenn du die Klammerauf nach dem Prcedurenamen geschrieben hast.<br><br>
            Gruß Fran

            Comment

            Working...
            X