Witam, przedstawiam algorytm, który dzieli podany tekst tak, aby szerokość tekstu w pikselach w każdej linii nie przekraczała podanej wartości. Poszczególne linijki umieszczane są w obiekcie typu TStringList.

Procedura przyjmuje trzy parametry:
S – tekst do podzielenia
Dl – maksymalna długość pojedynczej linii wyrażona w pikselach
Lista – w tym obiekcie umieszczamy kolejne linijki

Kod wykonuj się, dopóki string S nie jest pusty. Algorytm zlicza szerokość kolejnych liter używając funkcji TextWidth, jeżeli długość jest równa lub większa od wartości podanej w parametrze, to aktualna cześć tekstu dodawana jest do obiektu Lista. Dodany fragment usuwamy ze stringu S, ponieważ nie jest on już potrzebny. Kod:

Potrzebny jest w wypadku, gdy string S zawiera taką ilość liter, że ich szerokość nie będzie już większa od podanej (na końcu działania algorytmu). W takim przypadku pozostaje już tylko tekst znajdujący się w S wpisać do obiektu Lista.

Użycie:

Autor: Iskar

Załączniki