====== Häufige Fragen (FAQ) ======
Antworten auf häufige Fragen zu den WvdS FPC Tools.
===== Installation und Setup =====
==== Welche VS Code Version wird benötigt? ====
**Mindestens VS Code 1.85.0.** Empfohlen: aktuellste stabile Version.
Prüfung:
code --version
==== Muss ich Lazarus installieren? ====
**Nicht zwingend, aber empfohlen.**
* **Mit Lazarus:** Alle Features (lazbuild, LCL-GUI, Form Designer, pas2js)
* **Ohne Lazarus:** Nur FPC Direct-Builds, keine LCL-GUI-Projekte
Für Desktop-GUI-Projekte mit LCL ist Lazarus erforderlich.
==== Funktioniert es auf Linux/macOS? ====
**Primär Windows.** Linux ist über WSL unterstützt.
^ Feature ^ Windows ^ Linux (WSL) ^ macOS ^
| FPC-Kompilierung | Ja | Ja | Geplant |
| LCL-GUI Projekte | Ja | Ja | Geplant |
| pas2js | Ja | Ja | Geplant |
| InnoSetup | Ja | Nein | Nein |
| Form Designer | Ja | Ja | Geplant |
| WSL Cross-Compilation | Ja | N/A | N/A |
==== Wie deinstalliere ich die Extensions? ====
code --uninstall-extension wvds.wvds-fpc-tools
Oder einzeln:
code --uninstall-extension wvds.wvds-fpc-solution-manager
code --uninstall-extension wvds.wvds-fpc-pas2js-studio
code --uninstall-extension wvds.wvds-fpc-iss-designer
Alternativ: In VS Code Extensions → Rechtsklick → **Uninstall**
==== Brauche ich alle drei Extensions? ====
**Nein.** Solution Manager ist eigenständig lauffähig.
* **Nur FPC/Lazarus:** Nur Solution Manager installieren
* **+ pas2js/Web:** Solution Manager + PAS2JS Studio
* **+ Installer:** Solution Manager + ISS Designer
* **Alles:** Extension Pack ''wvds.wvds-fpc-tools'' (empfohlen)
===== Kompilierung =====
==== Warum findet FPC meine Units nicht? ====
**Mögliche Ursachen:**
- **Unit-Pfade nicht konfiguriert** — Rechtsklick auf Projekt → Properties → Paths
- **Falsche Groß-/Kleinschreibung** — Linux/macOS sind case-sensitive
- **Package fehlt** — Rechtsklick auf Projekt → Add Required Package
**Lösung:** Unit-Suchpfade in den Projekt-Properties (Tab "Paths") hinzufügen.
==== Was bedeutet "Fatal: Can't find unit..."? ====
FPC kann eine referenzierte Unit nicht finden.
**Lösungsschritte:**
- Schreibweise in der ''uses''-Klausel prüfen
- Prüfen ob die Unit-Datei existiert
- Pfad zu den Unit-Suchpfaden hinzufügen (Properties → Paths)
- Bei Packages: Required Package hinzufügen
==== Wie kompiliere ich für verschiedene Plattformen? ====
**WSL Cross-Compilation (Windows → Linux):**
- WSL mit Linux-Distribution installieren
- FPC/Lazarus in WSL installieren
- ''fpc-solution-manager.wslEnabled'' auf ''true'' setzen
- WSL-Distribution und Pfade konfigurieren
- **Build for Linux (WSL)** ausführen
**Native Cross-Compilation:**
- FPC-Cross-Compiler für Zielplattform installieren
- Target in Projekteinstellungen wählen
==== Warum ist meine Kompilierung langsam? ====
**Mögliche Ursachen:**
- **Antivirus** — Ausnahme für Projektordner und FPC-Verzeichnis hinzufügen
- **Viele Units** — Inkrementellen Build nutzen (Build statt Rebuild)
- **Netzwerklaufwerk** — Lokalen Speicher verwenden
**Tipps:**
- "Build" statt "Rebuild" verwenden (nur geänderte Units)
- Build-Timeout erhöhen: ''fpc-solution-manager.buildTimeoutSeconds''
==== Was ist der Unterschied zwischen lazbuild und FPC Direct? ====
| Aspekt | lazbuild | FPC Direct |
^ Voraussetzung | Lazarus installiert | Nur FPC |
^ LCL-Projekte | Ja | Nein |
^ Package-Auflösung | Automatisch | Manuell |
^ Geschwindigkeit | Etwas langsamer | Schneller |
FPC Direct wird automatisch als Fallback verwendet wenn kein ''lazbuild'' konfiguriert ist.
===== Form Designer =====
==== Was ist der Unterschied zwischen LFM und WFM? ====
^ Aspekt ^ LFM (Solution Manager) ^ WFM (PAS2JS Studio) ^
| Zielplattform | Desktop (LCL) | Web (Browser) |
| Dateiendung | ''.lfm'' | ''.wfm'' |
| Rendering | Native Windows/Linux/macOS | HTML/CSS im Browser |
| Lazy-Editor | Form Designer | Web Form Designer |
==== Kann ich bestehende Lazarus-Formulare öffnen? ====
**Ja.** Der Form Designer öffnet ''.lfm'' Dateien direkt. Voraussetzung:
* Die zugehörige ''.pas'' Unit muss vorhanden sein
* Verwendete Packages müssen installiert sein (oder Komponenten-Katalog nutzen)
==== Warum werden manche Komponenten nicht angezeigt? ====
Der Form Designer kennt nur registrierte Komponenten. Für Drittanbieter-Packages:
- ''fpc-solution-manager.designer.componentPackages'' konfigurieren (Pfad zur ''.lpk'')
- ''fpc-solution-manager.compcatgen.enabled'' aktivieren
- Der Komponenten-Katalog wird automatisch generiert
===== pas2js =====
==== Was ist pas2js? ====
**pas2js** ist ein Pascal-to-JavaScript Compiler, der Object Pascal in JavaScript übersetzt. Damit können VSCode Extensions und Web-Anwendungen in Pascal geschrieben werden.
==== Wo bekomme ich pas2js? ====
pas2js ist im **Lazarus-Bundle** (ab Version 3.0) enthalten. Separater Download:
[[https://wiki.freepascal.org/pas2js]]
==== Wie debugge ich eine pas2js Extension? ====
- Debug-Build erstellen (mit Source Maps)
- Extension in Development Host starten (''F5'' in VSCode)
- Breakpoints in Pascal-Quellen setzen
- Developer Tools öffnen (''Help'' → ''Toggle Developer Tools'')
===== Projekte =====
==== Wie erstelle ich ein Multi-Projekt-Workspace? ====
**Option 1: Projektgruppe (.lpg)**
- Rechtsklick im Tree View → **New Project Group**
- Projekte zur Gruppe hinzufügen
**Option 2: Multi-Root Workspace**
- ''File'' → ''Add Folder to Workspace...''
- Mehrere Projektordner hinzufügen
==== Kann ich Delphi-Projekte (.dpr) öffnen? ====
**Teilweise.** Pascal-Syntax wird unterstützt, aber:
* Delphi-spezifische Units (VCL, RTL) fehlen
* Projektdateien (''.dproj'') werden nicht gelesen
* Empfehlung: Projekt nach FPC/Lazarus migrieren
==== Wie teile ich Code zwischen Projekten? ====
- **Lazarus-Package (.lpk):** Erstellen, Units hinzufügen, als Required Package verwenden
- **Shared Unit Search Paths:** Gemeinsame Ordner in den Projekt-Properties konfigurieren
- **Projektgruppe:** Projekte in einer ''.lpg'' zusammenfassen
===== InnoSetup =====
==== Brauche ich InnoSetup separat installieren? ====
**Ja.** InnoSetup muss separat installiert werden:
[[https://jrsoftware.org/isinfo.php]]
Der ISS Designer nutzt ''iscc.exe'' (InnoSetup Command-Line Compiler).
==== Wie signiere ich meinen Installer? ====
- ''signtool.exe'' installieren (im Windows SDK enthalten)
- Zertifikat (''.pfx'') beschaffen
- Settings konfigurieren:
* ''fpc-iss.signTool.path'' — Pfad zu ''signtool.exe''
* ''fpc-iss.signTool.certFile'' — Pfad zur ''.pfx''
- Rechtsklick auf ''.iss'' → **Sign Installer**
===== Fehlerbehebung =====
==== Extension wird nicht aktiviert ====
* Prüfen ob ''.lpi'', ''.lpg'', ''.lpk'' oder ''package.json'' im Workspace vorhanden ist
* Output Panel → **FPC Solution Manager** Kanal prüfen
* VSCode neu laden: ''Ctrl+Shift+P'' → ''Developer: Reload Window''
==== Compiler nicht gefunden ====
* Pfade in den Settings prüfen (''fpc-solution-manager.fpcPath'', ''fpc-solution-manager.lazbuildPath'')
* **Setup Toolchain** Wizard ausführen: ''Ctrl+Shift+P'' → ''Setup Toolchain''
* FPC-Installation prüfen: ''fpc -v'' im Terminal
==== pasls (Language Server) funktioniert nicht ====
* ''fpc-solution-manager.pasls.enabled'' auf ''true'' prüfen
* Pfad zu ''pasls.exe'' in ''fpc-solution-manager.paslsPath'' setzen
* ''fpc-solution-manager.lazarusSourcePath'' muss auf Lazarus-Quellen zeigen
* Output Panel → **pasls** Kanal prüfen
==== Wo finde ich Logs? ====
* **Output Panel:** ''View'' → ''Output'' → Dropdown **FPC Solution Manager**
* **Developer Tools:** ''Help'' → ''Toggle Developer Tools'' → Console-Tab
* ''fpc-solution-manager.logLevel'' auf ''debug'' setzen für detaillierte Logs
===== Weitere Fragen? =====
* [[.:start|Dokumentation]]
* [[.:installation|Installation und Konfiguration]]