Witam! Poszukuje jakiegoś algorytmu do zawijania wierszy(wyrazów). Man dany string i szerokośc okienka tekstowego w którym ten tekst ma być umieszczony. Nie chodzi mi tu o użycie czegoś a'la textrect tylko za pomocą textout.
Podziel stringa na wyrazy (najlepiej umieść je w tablicy dynamicznej). Ilość wyrazów zapamiętaj w zmiennej.
Pętla byłaby mniej więcej taka:
while (string.szerokosc > okno.szerokosc) do
begin
Dec(string.szerokosc, wyraz[liczbawyrazow].szerokosc);
Dec(liczbawyrazow);
end;
Teraz wiesz, ile wyrazow mieści się w oknie. Nastepnie posklejaj je ponownie.
for i := 0 to liczbawyrazow do s := s+wyrazy[i];
Generalnie taką mam koncepcję. Wymaga ona dopracowania, ale to nie moja działka :/
zamiast kombinować jak koń pod górkę wystarczy trochę poczytać - DrawText a tam jest taki piękny opis
DT_WORDBREAK
Breaks words. Lines are automatically broken between words if a word would extend past the edge of the rectangle specified by the lpRect parameter. A carriage return-line feed sequence also breaks the line.If this is not specified, output is on one line.
Nie może byc to draw text bo mam do dyspozycji tylko polecenie rysujące text w wybranej pozycji. To nie jest ani delphi ani tp, to jest coś a'la tp, Popróbuje to co napisał Adam.