Diese Anleitung fuehrt dich vom Stand "ich habe nichts" bis zu "der Analyzer laeuft auf meinem Code". Sie ist fuer Leute geschrieben, die neu in Delphi sind.
Am Ende hast du:
- die Standalone-Windows-App (
StaticCodeAnalyser.d12.exe) - das IDE-Plugin (laedt beim Start von Delphi 12)
- Windows 10 oder 11 (64-bit).
- Ca. 25 GB freier Speicher (RAD Studio ist gross).
- Eine Internet-Verbindung (fuer Download und git).
- Einen Embarcadero-Account (kostenlos).
- Ca. 45 Minuten Zeit. Davon ist das meiste der RAD-Studio-Installer.
Du brauchst Delphi 12 Athens (auch RAD Studio 12 genannt). Die kostenlose Community Edition reicht.
- Geh auf https://www.embarcadero.com/products/delphi/starter.
- Klick auf "Download Free Trial" oder "Community Edition".
- Mit deinem Embarcadero-Account einloggen (oder einen anlegen).
- Den Installer starten (
RADStudio_Athens_setup.exe). - Auswahl:
- Personality: Delphi (C++Builder brauchst du nicht).
- Platforms: Windows 32-bit UND Windows 64-bit (beides!).
- Languages: Englisch ist OK.
- Extras (optional): GetIt-Package-Manager — Default lassen.
- Warten. Der Download ist ~6 GB; die Installation belegt ~12 GB.
- Nach der Installation RAD Studio starten. EULA beim ersten Start bestaetigen.
Du siehst jetzt die Delphi-IDE mit dem "Welcome"-Tab. Schliesse geoeffnete Beispiel-Projekte.
Du brauchst git fuer Windows: https://git-scm.com/download/win.
Oeffne Command Prompt oder PowerShell in dem Ordner, in dem du deinen Code haelst, und tippe:
cd D:\projects
git clone https://github.com/nrodear/StaticCodeAnalyser.git
cd StaticCodeAnalyserDu kannst jeden Pfad nehmen. In dieser Anleitung nehmen wir
D:\projects\StaticCodeAnalyser an.
Das Projekt liefert eine Project-Group mit 4 Sub-Projekten (Engine, geteilte UI, Standalone, IDE-Plugin).
- In Delphi: Menue File → Open Project.
- Navigiere zu
D:\projects\StaticCodeAnalyser. - Unten im Dialog "Files of type" auf
"Delphi project group (
*.groupproj)" umstellen. StaticCodeAnalyser.d12.groupprojwaehlen und Open klicken.
Rechts in der IDE siehst du jetzt das Project Manager-Fenster mit:
SCA.Engine— die Scanner-Engine.SCA.SharedUI— UI-Komponenten fuer Standalone + Plugin.StaticCodeAnalyser.d12— die Standalone-EXE.StaticCodeAnalyser.IDE.d12— das IDE-Plugin (ein BPL-Package).
Delphi zeigt das aktive Sub-Projekt in fetter grueuner Schrift. Wir wechseln das aktive Projekt unten je nach Bedarf.
Die Standalone ist eine einfache .exe. Du startest sie per
Command-Line oder Doppelklick.
64-bit ist Default und empfohlen.
Im Project Manager:
- Auf den Pfeil neben
StaticCodeAnalyser.d12klicken (aufklappen). - Target Platforms aufklappen.
- Rechtsklick auf
Windows 64-bit (Win64)→ Activate. - Rechtsklick auf
Configuration→ Release → Activate.
Fuer 32-bit nimm stattdessen Windows 32-bit (Win32).
Tipp: du kannst spaeter jederzeit zurueck wechseln — Rechtsklick → Activate auf der anderen Plattform reicht. Du kannst beide Versionen separat bauen.
- Im Project Manager rechtsklick auf
StaticCodeAnalyser.d12(den Projekt-Namen selbst, nicht Target Platforms). - Build klicken (oder Compile wenn Build ausgegraut ist).
- Warten — ca. 30 Sekunden. Im Messages-Fenster unten siehst du den Fortschritt.
Wenn "Success" kommt, liegt deine EXE hier:
D:\projects\StaticCodeAnalyser\Output\Win64 Release\StaticCodeAnalyser.d12.exe
(Fuer Win32: Output\Win32 Release\…. Fuer Debug: …\Win64 Debug\….)
Der Compiler setzt 1 MB Stack. Tiefe Pascal-Files koennen das sprengen und crashen. Oeffne PowerShell im Projekt-Ordner und tippe:
tools\patch-stack-size.ps1 "Output\Win64 Release\StaticCodeAnalyser.d12.exe"Das Skript meldet Patched ... SizeOfStackReserve: 1 MB -> 32 MB.
Nach jedem frischen Build wiederholen.
Das Plugin ist ein .bpl (Borland Package Library), das Delphi beim
Start ladet.
Das Plugin laeuft innerhalb der Delphi-IDE, die 32-bit ist. Das Plugin muss also 32-bit sein.
- Im Project Manager
StaticCodeAnalyser.IDE.d12aufklappen. - Target Platforms aufklappen.
- Rechtsklick auf
Windows 32-bit (Win32)→ Activate. - Active Configuration auf Release umschalten (Rechtsklick auf
Configuration→ Release → Activate). - Rechtsklick
SCA.Engine(im Project Manager) → Build. Das Plugin braucht das Engine-Package — erst das bauen. - Rechtsklick
SCA.SharedUI→ Build. - Rechtsklick
StaticCodeAnalyser.IDE.d12→ Build.
Du hast jetzt drei .bpl-Dateien in
C:\Users\Public\Documents\Embarcadero\Studio\23.0\Bpl\:
SCA.Engine.bplSCA.SharedUI.bplStaticCodeAnalyser.IDE.d12.bpl
- Menue Tools → Options.
- Links: IDE → Packages → Design Packages.
- Add… klicken.
- Zu
C:\Users\Public\Documents\Embarcadero\Studio\23.0\Bpl\gehen,StaticCodeAnalyser.IDE.d12.bplwaehlen, Open klicken. - Sicherstellen, dass die Checkbox daneben an ist.
- OK klicken.
- Delphi schliessen und neu starten.
Nach dem Neustart zeigt die IDE ein neues Dock-Fenster: View → Static Code Analysis.
Falls der Menue-Eintrag fehlt, ist das Plugin nicht geladen. Schau in View → Window List… oder lies die Splash-Screen-Fehler vorsichtig durch.
Die Standalone ist der einfachste Weg, um zu pruefen, dass alles funktioniert.
Fuer einen Smoke-Test kannst du das Projekt selbst scannen.
EXE doppelklicken, ODER per Command-Line:
cd D:\projects\StaticCodeAnalyser
"Output\Win64 Release\StaticCodeAnalyser.d12.exe"Ein Fenster mit Stat-Cards (Fehler / Warnungen / Hinweise / …) und leerem Grid oeffnet sich.
- Im Feld Path oben den Ordner eintragen oder einfuegen
(z.B.
D:\projects\StaticCodeAnalyser\SCA.Engine\sources). - Analyse klicken.
- Warten — bei kleinen Projekten: 1-5 Sek. Bei grossen: bis zu einer Minute.
Das Grid fuellt sich. Jede Zeile zeigt: Datei, Methode, Zeile, Schweregrad, Regel, Meldung. Doppelklick oeffnet die Datei an der richtigen Zeile (Notepad oder dein Default-Pascal-Viewer).
- Das Filter-Feld oben akzeptiert Substrings von Datei oder Regel.
- Klick auf einen Spalten-Header → sortieren.
- Klick auf eine Stat-Card (Fehler / Warnung / Hinweis) → nur diese Severity zeigen.
Die Export-Knoepfe (oben rechts) speichern als HTML, JSON, SARIF (fuer SonarQube), oder kopieren in die Zwischenablage fuer Jira/Markdown.
Wenn du Sektion 5 fertig hast, ist das Plugin schon geladen.
Menue View → Static Code Analysis.
Ein Dock-Fenster erscheint (Titelleiste ziehen, um es z.B. neben den Project Manager oder als Tab unten zu docken).
- Eine
.pas-Datei im Editor oeffnen. - Im Static-Code-Analysis-Fenster File klicken.
- Die aktuelle Datei wird gescannt. Befunde stehen im Grid.
- Dein Projekt (
.dproj) in Delphi oeffnen. - Im Static-Code-Analysis-Fenster Analyse klicken.
- Das ganze Projekt wird gescannt. Sekunden bis eine Minute.
Klick auf eine Grid-Zeile: der Editor springt zu Datei + Zeile und markiert die problematische Stelle mit einer farbigen Markierung in der Gutter-Spalte.
Rechtsklick auf einen Befund → Suppress mit // noinspection.
Das Plugin schreibt einen Kommentar ueber der Zeile, der genau diese
Regel an dieser Stelle ausblendet. Beim naechsten Scan ist der Befund
weg.
Wenn du ueber eine Befund-Zeile haengen bleibst, zeigt ein Tooltip ein Vorher / Nachher-Code-Beispiel: wie das Problem aussieht und wie der Fix aussieht.
| Symptom | Wahrscheinliche Ursache |
|---|---|
| "Build failed: unresolved external" | Du hast das Plugin vor dem Engine gebaut. Erst SCA.Engine, dann SCA.SharedUI, dann das Plugin bauen. |
| Plugin-Menue fehlt nach Neustart | Falsche Plattform (Win64 statt Win32 gebaut) oder falscher Pfad in Tools → Options → Packages. |
| Standalone crasht nach ein paar Sekunden bei grossem Projekt | Stack-Patch nicht angewendet. tools\patch-stack-size.ps1 neu ausfuehren. |
| EXE meldet "file not found" beim Start | Du hast die EXE aus ihrem Output\…-Ordner verschoben. Entweder zurueck, oder die .dcu/.bpl-Files mit kopieren. |
| "Cannot find SCA.Engine.bpl" beim Plugin-Laden | Plugin findet SCA.Engine.bpl ueber den Delphi-Search-Path. Engine fuer dieselbe Plattform (Win32) und Konfiguration (Release) bauen. |
- Analyzer konfigurieren: oeffne
analyser.iniin%APPDATA%\StaticCodeAnalyser\. Du kannstProfile=(welche Regeln laufen),MinSeverity=,MinConfidence=etc. setzen. Das File ist kommentiert. - Mit SonarQube verbinden: siehe sonarHowto_de.md.
- Aus Command-Line / CI: schau in die
--help-Ausgabe der Standalone. Nuetzliche Flags:--profile,--report-sarif,--quiet,--time-detectors. - Deutsche UI: im Analyzer-Fenster oben Sprache auf Deutsch umstellen.
- GitHub-Issues: https://github.com/nrodear/StaticCodeAnalyser/issues
- Embarcadero-Docs (allgemeine Delphi-Fragen): https://docwiki.embarcadero.com/RADStudio/en/Main_Page