Een gewoon TLabel heeft weliswaar een WordWrap property, maar breekt lange woorden niet af. Een DevExpress TcxLabel doet dat bijvoorbeeld beter, maar berekent dan de hoogte weer niet correct.
Daarom heb ik een procedure gemaakt die een tekst voorziet van enters op de juiste plaatsen op basis van een opgegeven Canvas en een maximale breedte. De tekst wordt afgebroken op spaties en streepjes en de procedure geeft de aangepaste tekst terug en de berekende hoogte.
De procedure is los aan te roepen, zodat het resultaat is toe te passen op een label-variant naar keuze of zelfs direct op de DrawText functie, maar de unit bevat ook een TbigLabel die deze wrap-functionaliteit al in zich heeft. Gebruik dus de losse functie, of installeer TbigLabel.
En als je snel wilt testen of dit label doet wat je wilt zonder het te installeren, doe dan het volgende:
~ Voeg de unit bigLabel toe aan de uses in het interface gedeelte van je form.
~ Zet van al je labels AutoSize op False en WordWrap op True.
~ Voeg boven je form de volgende regels in:
Code:
TLabel = class(TbigLabel)
end;
~ Zet in de FormShow van je form de AutoSize van je labels op True.
~ Runnen maar!
Bookmarks