# Formulieren en de formulierontwerper [Programmeergidsen](LEESMIJ.md) Een formulier stelt meerdere vragen tegelijk. Gebruik het voor een spelersnaam, moeilijkheid, geluidsvolume of bevestiging. Basisformulieren en de visuele ontwerper zijn beschikbaar in Learner; hiervoor is geen Pro-licentie nodig. ```pliro # language: nl laat antwoord = toonFormulier({"title": "Klaar om te spelen?", "submit": "Start", "cancel": "Terug", "fields": [{"id": "naam", "type": "text", "label": "Spelersnaam", "value": "Nova", "required": waar}, {"id": "geluid", "type": "checkbox", "label": "Geluid aan", "value": waar}]}) als antwoord["submitted"]: zeg "Welkom", antwoord["values"]["naam"] anders: zeg "Misschien later." ``` Controleer `submitted` voordat je waarden leest. Annuleren geeft een lege waardenmap terug. Die behandelen als een ingevuld formulier veroorzaakt een fout. ## Een formulier ontwerpen Kies **Extra → Nieuw formulier** of plaats de cursor bij een letterlijke aanroep van `toonFormulier` en kies **Extra → Formulierontwerper**. Voeg velden toe, wijzig hun volgorde en kies een veld om de eigenschappen te bewerken. Bekijk het resultaat in de voorbeeldweergave. **Formulier toepassen** wijzigt gewone Pliro-code en werkt met Ongedaan maken. In Blokken staat ook een knop voor de formulierontwerper.
Veldlijst, eigenschappen en voorbeeld van een formulier
Veldlijst, eigenschappen en voorbeeld van een formulier
| Veldtype | Inhoud | |---|---| | `text` | Tekst; `required` weigert een leeg antwoord of alleen witruimte. | | `number` | Een eindig getal; `minimum` en `maximum` tellen zelf mee. | | `checkbox` | Een booleaanse waarde; bij `required` moet het vakje aanstaan. | | `choice` | Eén tekstoptie uit een niet-lege lijst met unieke keuzes. | | `label` | Uitleg zonder teruggegeven waarde. | Gegevensvelden hebben unieke ID's nodig. `value` geeft een beginwaarde van het juiste type. `group` geeft velden een sectiekop. Titel, labels en knopteksten zijn eigen applicatietekst: vul die zelf in het Nederlands in. Syntaxisconversie vertaalt geen mapsleutels, ID's, typenamen of labels. Berekende definities zijn geldige programma's. De ontwerper bewerkt alleen definities die hij veilig kan bewaren. Houd berekende expressies of definities met niet-ondersteunde interne opmerkingen in Tekst. Basisformulieren worden als geheel verstuurd of geannuleerd. Directe veldgebeurtenissen, eigen herbruikbare widgets en databasegebonden formulieren zijn niet beschikbaar. De IDE en browser tonen meeschalende HTML-velden met labels en toetsenbordbediening. Native Windows-/Linux-/Pi-apps tonen een formulier met muis- en toetsenbordbediening: Tab gaat naar het volgende veld, pijlen veranderen keuzes, Spatie verandert een selectievakje, Enter gaat verder en Escape annuleert. Lange formulieren verdelen velden over pagina's. Native formulieren hebben nog geen toegankelijkheidsstructuur voor het besturingssysteem. CLI- en console-apps stellen de vragen in de terminal. Telefoonvoorbeeldweergave verwijst je naar het formulier in de IDE. [Functie toonFormulier](../ingebouwde-functies/toonFormulier.md) · [Demospellen](demospellen.md)