TextOut z "łamaniem tekstu"

0

Ostatnio pisze troche w Lazarusie, nie posiada on jeszcze metody DrawText która to z kolei ma łamanie długiego tekstu DT_WORDBREAK. Jak podobny efekt uzyskac za pomocą Textout? Czytalem gdzies kiedys o troche bardziej zaawansowanej metodzie TextExt czy jakos tak ktora potrafi przenosic za dlugi tekst do nastepnej lini

0

Musisz określi metrykę tekstu za pomoca funkcji GetTextMetric()
A takze muszisz okresli dlugosc tekstu w pixelach (lub jednostkach logicznych nie pamietam) - funkcja GetTextExtentPoint32()
Reszta juz zalezy od przyjetego sposobu mozna wyraz po wyrazie obliczac czy tekst miesci sie w danej szerokosci jesli sie nie miesci to tekst przenosimy do nowej lini (czyli przesuwamy wspolrzedna y o wysokosc znaku). Wiecej informacji o funkcjach znajdziesz na http://msdn.microsoft.com

A co do funkcji TextOut to jest jej rozszezenie ExtTextOut i na 99% umozliwia ona zawijanie textu, zrszta sprawdz w msdn

0

Juz mam, w ksiazce o tym nie pisali ze TextRect ma zawijanie, sprawdzilem i ma, a moze tworcy lazarusa zrobili alternatywe dla DrawText, brakuje mi jeszcze DT_CALCRECT ale jakos przezyje.

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