Moduły » SysUtils

WrapText

WrapText
Moduł: SysUtils

function WrapText(const Line, BreakStr: string; nBreakChars: TSysCharSet; MaxCol: Integer):string; overload;
function WrapText(const Line, MaxCol: Integer = 45):string; overload;

Funkcja rozdziela dany łańcuch jeżeli jego długość przekracza wartość parametru MaxCol. Przydatna w szczególności gdy mamy do czynienia z długimi łancuchami, które mogą nie zmieścić się na ekranie. W takim wypadku należy "złamać" daną linię dodając znak nowej linii (lub jakikolwiek inny - wedle potrzeb).

Pierwszym parametrm funkcji musi być wartość źródłowa, czyli łańcuch który będzie skanowany (parametr Line). Parametr MaxCol określa max. długość linii. Jak widać mamy do czynienia z dwiema przeciążonymi funkcjami. Jeżeli parametry BreakStr oraz nBreakChars zostaną pominięte, funkcja odnajdzie pustą przestrzeń (spację lub znak tabulatora) i w to miejsce wstawi znak nowej linii.

BreakStr określa znak który zostanie wstawiony, aby przełamać linię - najczęściej jest to znak nowej linii. Jeżeli zostanie określony parametr nBreakChars, funkcja będzie przeszukiwać łańcuch w poszukiwaniu znaków określonych w tym parametrze (może to być np. przecinek czy kropka). W takim wypadku linia zostanie przełamana za znalezionym znakiem, tak, aby jego pozycja nie przekraczała tej z parametru MaxCol.

Przykładowe użycie:

const
  Foo = 'To jest bardzo długi łancuch, który może być dla nas za długi i się nie zmieści po prostu';
begin
  ShowMessage(
    WrapText(Foo, #13, [',', '.'], 40)
  );
end.