Proper-Struktursyntax für Pascal if then begin end and; (im Inno Setup)

Es ist ungefähr 20 Jahre her, dass ich das letzte Mal in Pascal schreiben musste. Ich kann nicht scheinen, die Strukturelemente der Sprache richtig zu verwenden, in der ich als Blöcke verschachtele, die Anfang und Ende verwenden. Zum Beispiel bekomme ich einen Compiler-Fehler "Bezeichner erwartet"

procedure InitializeWizard;
begin
  Log('Initialize Wizard');
  if IsAdminLoggedOn then begin
    SetupUserGroup();
    SomeOtherProcedure();
  else begin (*Identifier Expected*)
    Log('User is not an administrator.');
    msgbox('The current user is not administrator.', mbInformation, MB_OK);
    end  
  end;
end;

Natürlich, wenn ich das @ entferif then Block und dasbegin end Blöcke mit ihnen verbunden, dann ist alles in Ordnung.

Manchmal bekomme ich diese Art von Syntax richtig und es funktioniert, aber die Probleme werden ärgerlich, wenn das @ verschachtelt wiif then else Blöcke

Lösung des Problems ist hier nicht genug. Ich möchte ein besseres Verständnis für die Verwendung dieser Blöcke haben. Mir fehlt eindeutig ein Konzept. Etwas aus C ++ oder C # schleicht sich wahrscheinlich aus einem anderen Teil meines Verstandes ein und bringt mein Verständnis durcheinander. Ich habe ein paar Artikel darüber gelesen und denke, ich verstehe es und tue es dann nicht.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage