Ich möchte eine Procedue aufrufen, und bekomme die Fehlermeldung: illegal expression.
Hier die Deklaration: (die mittlere Zeile. )
Code: Alles auswählen
procedure weiche_umst(akt_element:Pdaten_element);
procedure aufzug_umstellen(akt_element:Pdaten_element);
procedure weiche_nach_links(element :Pdaten_element); Code: Alles auswählen
procedure aufzug_umstellen(akt_element :Pdaten_element);
          begin
          end; Code: Alles auswählen
 case funktionsnummer of 
   0: ......
 
 7:        //Weiche umstellen
     begin
       weiche_umst(akt_element);
       zeichnen_erforderlich := true;
     end;  
 
  20:
     begin
      //  funktionsnummer := 0;
        aufzug_umstellen(akt_element);
     end;          main.pas(10422,25) Fatal: Syntax error, ";" expected but "(" found
Der Aufruf bei 7 funktioniert einwandfrei.
Und hier noch der ganze case-Block, falls da was wichtiges dabei wäre.
Code: Alles auswählen
    case funktionsnummer of
   0 :
     begin
          if akt_element^.elementart = k_hallentor then hallentor_manuell(akt_element);
          if akt_element^.elementart = k_weiche then weiche_umst(akt_element);
          if akt_element^.elementart = k_bue then schranke_manuell(akt_element);
     end;
   1 :       {Ziel Zugstrasse}
     begin
     if akt_element^.zug_zielfaehig  or hilfsaufl then
       begin
         funktionsnummer := 0;
         alle_ziele_loeschen;
         akt_element^.ziel_gesetzt := true;
         akt_element := elementpuffer;
         THzugfahrstr.create(false);
       end
     else
       begin
         Statusfeld.text := 'Dieses Element ist nicht als Ziel für Zugfahrten erlaubt (nur Signale)'  ;
         ShowMessage('Dieses Element ist nicht als Ziel für Zugfahrten erlaubt (nur Signale)');
         allgemeiner_timer.enabled := true;
       end;
   end;
   2:        {Ziel MMrangierstrasse}
     begin
     if not akt_element^.rangier_zielfaehig then
       begin
         showmessage('Das angeklickte Element ist nicht rangierzielfähig !');
         exit;
       end;
     funktionsnummer := 0;
     Statusfeld.text := ''  ;
     alle_ziele_loeschen;
     akt_element^.ziel_gesetzt := true;
   { if  (akt_element^.P_linkes_element^.Pbz_konto^.loknummer = '                    ') and
         (akt_element^.P_linkes_element^.Pbz_konto^.kontostand <> 0) then
             begin
                 zugauswahl.FZugauswahl.visible := false;
                 zugauswahl.FZugauswahl.show;
                 P_loknummer  := P_erste_loknummer;
                 a := 0;
                 repeat
                     begin
                         if a =  loknummernzeile then break;
                         inc(a);
                         P_loknummer := P_loknummer^.P_next_loknummer ;
                     end;
                 until P_loknummer = nil
             end
         else
             loknummernsuche(akt_element^.P_linkes_element^.Pbz_konto^.loknummer); }
         akt_element := elementpuffer;
         THrangierstr.create(false);
   end;
   3:
     begin
       hallentor_manuell(akt_element);
     end;
   4:       {bz-Kontoberichtigung}
     begin
       if akt_element^.Pbz_konto = nil then
         begin
           Showmessage('Das angeklickte Element hat kein belegungszählkonto');
           exit;
         end ;
       bz_korrekturelement :=akt_element;
       Achszaehlkorrektur_.close;
       Achszaehlkorrektur_.show;
       zeichnen_erforderlich := true;
     end;
   5:         //Ziel Hilfsauflösung
     begin
     funktionsnummer := 1;
     Statusfeld.text := ''  ;
     alle_ziele_loeschen;  hilfsaufl := true;
     elementpuffer := akt_element;
     akt_element^.ziel_gesetzt := true;
   end;
   6:        //Einzelauflösung
     begin
     with akt_element^ do
       begin
         If akt_element^.Pbz_konto <> nil then
           begin
              if fahrtreg[Pbz_konto^.fahrtreg].v_ist =0 then
                 begin
                   Pbz_konto^.fahrstrassennummer :=0;
                   Pbz_konto^.lokal:= false;
                   fahrtreg[Pbz_konto^.fahrtreg].lokal:= false;
                   fahrtreg[Pbz_konto^.fahrtreg].anforderungen := 0;
                   Pbz_konto^.fahrtreg := 0;
                   hp2markierung := false;
                   P_signaladresse := nil;
                   gn := false;
                   rot1 := ja;
                   rot2 := ja;
                   ws := nein;
                   ge := nein;
                   if bue <> nil then
                     begin
                       if bue^.Pbz_konto^.BUE_Anforderungen >0 then
                         begin
                           dec (bue^.Pbz_konto^.BUE_Anforderungen);
                             if  (bue^.Pbz_konto^.BUE_Anforderungen = 0 )then
                               begin
                                 zwischenadresse := akt_element;
                                 akt_element := akt_element^.bue;
                                 weiche_nach_links(akt_element);
                                 akt_element^.Pbz_konto^.bue_geschlossen:= false;
                                 akt_element := zwischenadresse;
                               end;
                         end;
                     end;
                    zeichnen_erforderlich := true;
                 end
              else
                 begin
                   Showmessage('Fahrzeug fährt noch. Auflösung nicht möglich.');
                   exit;
                 end;
           end;
       end;
   end;
   7:        //Weiche umstellen
     begin
       weiche_umst(akt_element);
       zeichnen_erforderlich := true;
     end;
   8 :       //MMrangierstrasse
     begin
       if   not akt_element^.startfaehig then
         begin
           Showmessage('Das angeklickte Element ist nicht startfähig !');
           Statusfeld.text := 'Das angeklickte Element ist nicht startfähig !';
           exit;
         end ;
       if  not akt_element^.rangierstr then
         begin
           Showmessage('Das angeklickte Element ist für Rangierfahrten nicht zugelassen !');
           Statusfeld.text := 'Das angeklickte Element ist für Rangierfahrten nicht zugelassen !';
           exit;
         end;
       funktionsnummer := 2;
       elementpuffer := akt_element;
       akt_element^.startsignal := true;
       Statusfeld.text := 'Ziel anklicken !'  ;
      end;
   9 :       //MMZugfahrstrasse
     begin
       if  not akt_element^.startfaehig then
         begin
           Showmessage('Das angeklickte Element ist nicht startfähig !');
           Statusfeld.text := 'Das angeklickte Element ist nicht startfähig !';
           exit;
         end ;
       if  not akt_element^.zugfahrstr  then
         begin
           Showmessage('Das angeklickte Element ist nicht für Zugfahrstrassen zugelassen !');
           Statusfeld.text := 'Das angeklickte Element ist nicht für Zugfahrstrassen zugelassen !';
           exit;
         end ;
       funktionsnummer := 1;
       elementpuffer := akt_element;
       akt_element^.startsignal := true;
       Statusfeld.text := 'Ziel anklicken !'  ;
     end;
   10:       //Hilfsauflösung
     begin
       if akt_element^.startfaehig = false then
         begin
           Showmessage('Das angeklickte Element ist nicht startfähig !');
           Statusfeld.text := 'Das angeklickte Element ist nicht startfähig !';
           exit;
         end ;
       funktionsnummer := 5;     {MMZugfahrstrasse}
       elementpuffer := akt_element;
       Statusfeld.text := 'Ziel anklicken !'  ;
     end;
   11:    {manuelle Schattenbahnhofsausfahrt}
     begin
             end;
   12:     {manuelle Schattenbahnhofseinfahrt}
     begin
             end;
   13:    {loknummern ändern }
     begin
       if akt_element^.Pbz_konto = nil then
         begin
           Showmessage('Das angeklickte Element hat kein Belegungszählkonto');
           exit;
         end ;
       bz_korrekturelement :=akt_element;
       achszaehlkorrektur_.show;
       zeichnen_erforderlich := true;
     end;
   14:      //Lokalfahrt
     lokalfahrt(akt_element);
   15:      //Entkuppler
     if lastshift = [] then entkuppler(akt_element);
   16:      //Bahnübergang manuell
     if lastshift = [] then Schranke_manuell(akt_element);
   17:      //MMSperrfahrt
     begin
       if  akt_element^.startfaehig = false then
         begin
           Showmessage('Das angeklickte Element ist nicht startfähig !');
           Statusfeld.text := 'Das angeklickte Element ist nicht startfähig !';
           exit;
         end ;
           funktionsnummer := 18;     {MMSperrfahrt}
           elementpuffer := akt_element;
           akt_element^.startsignal := true;
           Statusfeld.text := 'Ziel anklicken !'  ;
     end;
   18:
     begin
       funktionsnummer := 0;
       Statusfeld.text := ''  ;
       alle_ziele_loeschen;
       akt_element^.ziel_gesetzt := true;
       sperrfahrt_;
     end;
   19:      //Gleis sperren
   //lastshift := GetKeyShiftState ;
   if lastshift = [] then
 // if not(ssCtrl in lastshift) then
     gleis_sperren_(akt_element);
   20:
     begin
      //  funktionsnummer := 0;
        aufzug_umstellen(akt_element);
     end;
   21:goto editmode;
   end;
  exit;                                 

 Verein
Verein 
 Links
Links Suche
Suche