07 - Gedrag tekstveld
Je hebt tekstvakken geplaatst, gevuld met velden en opgemaakt. Maar wat gebeurt er als de inhoud niet past? Een klantnaam van 10 tekens past prima, maar wat als de volgende klant 80 tekens heeft? Dit is waar het gedrag van het tekstveld cruciaal wordt.
Het probleem: vaste hoogte vs. variabele inhoud
In de designer geef je een tekstvak een vaste afmeting. Maar de data die erin komt is variabel — soms kort, soms lang. Stimulsoft biedt drie mechanismen om hiermee om te gaan:
| Eigenschap | Wat het doet | Standaard |
|---|---|---|
| Word Wrap | Breekt lange tekst af naar de volgende regel | Aan |
| Can Grow | Laat het tekstvak in hoogte groeien als de tekst niet past | Uit |
| Can Shrink | Laat het tekstvak krimpen als er minder tekst is | Uit |
Word Wrap
Word Wrap bepaalt of tekst die breder is dan het tekstvak automatisch naar de volgende regel gaat. Dit staat standaard aan.
Word Wrap aan:
┌──────────────────┐
│ Bakkerij De │
│ Gouden Aar B.V. │
└──────────────────┘ Word Wrap uit:
┌──────────────────┐
│ Bakkerij De Goud │ ← tekst wordt afgesneden
└──────────────────┘ Zonder Word Wrap verdwijnt tekst buiten de grenzen van het tekstvak. In het afdrukresultaat is die tekst onzichtbaar — het tekstvak is een “venster” op de inhoud.
Can Grow
Can Grow is de belangrijkste eigenschap voor variabele tekst. Als de inhoud meer ruimte nodig heeft dan het tekstvak biedt, groeit het tekstvak in hoogte mee.
Can Grow uit (standaard):
┌──────────────────┐
│ Ingrediënten: │
│ tarwebloem, water│ ← rest is afgesneden
└──────────────────┘ Can Grow aan:
┌──────────────────┐
│ Ingrediënten: │
│ tarwebloem, water│
│ gist, zout, │
│ zonnebloempitten │
└──────────────────┘ Wanneer zet je Can Grow aan?
- Velden met variabele lengte (adressen, omschrijvingen, opmerkingen)
- Tekstvakken met meerdere regels tekst uit de database
- Ingrediëntenlijsten, specificaties of vrije tekstvelden
Wanneer laat je Can Grow uit?
- Kolomkoppen en labels met bekende, korte tekst
- Velden met een vaste lengte (artikelcodes, datums, bedragen)
- Als je een strakke layout wilt afdwingen
Can Shrink
Can Shrink is het omgekeerde: als de inhoud minder ruimte nodig heeft (of leeg is), krimpt het tekstvak. Dit voorkomt lege witruimte.
Een typisch voorbeeld: een adresblok met drie regels (naam, straat, postcode + plaats), maar sommige klanten hebben ook een extra regel voor het bedrijf. Als je vier tekstvakken onder elkaar zet en het bedrijfsveld is leeg, blijft er een lege rij over. Met Can Shrink verdwijnt die lege rij.
Het Shift-mechanisme: Grow to Height
Als een tekstvak groeit door Can Grow, schuiven de componenten eronder dan mee? Niet automatisch. Je moet dit expliciet instellen met de eigenschap Shift Mode (of “Grow to Height” bij de onderliggende component).
Er zijn drie opties voor Shift Mode:
| Waarde | Gedrag |
|---|---|
| None | Component blijft op zijn vaste positie staan |
| IncreasingSize | Component schuift mee als het component erboven groeit |
| DecreasingSize | Component schuift mee als het component erboven krimpt |
Praktijkvoorbeeld: een opmerkingenveld boven een handtekeningblok. Als de opmerking groeit van 2 naar 5 regels, moet het handtekeningblok mee naar beneden schuiven. Stel dan bij het handtekeningblok Shift Mode in op IncreasingSize.
Wat gebeurt er in een DataBand?
In een databand werkt Can Grow per herhaling:
┌─ DataBand ─────────────────────────┐
│ Artikel: Brood wit │ ← past in 1 regel
├────────────────────────────────────┤
│ Artikel: Biologisch │
│ volkorenbrood met zonnebloempitten │ ← groeit naar 2 regels
├────────────────────────────────────┤
│ Artikel: Croissant │ ← weer 1 regel
└────────────────────────────────────┘ Elke herhaling van de databand past zich aan aan de inhoud. De volgende herhaling begint direct onder de vorige — er ontstaat geen gat.
Instellen in de designer
- Selecteer het tekstvak op het canvas
- Ga naar het Eigenschappen-paneel
- Zoek de sectie Behavior (of Gedrag)
- Stel Can Grow en/of Can Shrink in op
True - Stel bij onderliggende componenten Shift Mode in als ze mee moeten schuiven
Veelgemaakte fouten
| Fout | Gevolg | Oplossing |
|---|---|---|
| Can Grow vergeten bij variabele tekst | Tekst wordt afgesneden | Can Grow = True |
| Shift Mode niet ingesteld | Componenten overlappen elkaar | Shift Mode = IncreasingSize |
| Can Grow op een veld met vaste breedte | Tekstvak wordt onnodig hoog | Word Wrap uit of breedte vergroten |
| Can Shrink in een strak grid | Layout springt per rij | Can Shrink alleen bij blokken |
Samenvatting
- Word Wrap breekt tekst af naar de volgende regel (standaard aan)
- Can Grow laat het tekstvak meegroeien met de inhoud
- Can Shrink krimpt het tekstvak als de inhoud korter is
- Shift Mode zorgt dat onderliggende componenten meeschuiven
- In een databand werkt Can Grow per herhaling — elke rij past zich aan