zawijanie wierszy

0

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.

0

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 :/

0

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.

0

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.

1 użytkowników online, w tym zalogowanych: 0, gości: 1