
14.06.2011, 09:30
|
 |
Let Me Show You
|
|
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
|
|
1.
Код:
type
TForm1 = class(TForm)
procedure FormPaint(Sender: TObject);
procedure TForm1.FormPaint(Sender: TObject);
var
s: String;
rct: TRect;
w, h: Integer;
begin
w:=100; // исходная ширина прямоугольника с текстом
h:=0; // высота не нужна пока
s:='Каким образом можно нарисовать (вывести) текст на Canvas с переносом строки, т.е. определенной ширины (подобно WordWrap в Label), и узнать его высоту в пикселах?';
rct.Left:=100; // коорд. X для вывода прямоугольника с текстом
rct.Top:=100; // коорд. Y для вывода прямоугольника с текстом
rct.Right:=rct.Left+w;
rct.Bottom:=rct.Top+h;
// вычислим размеры прямоугольника
DrawText(Canvas.Handle, PChar(s), -1, rct, DT_CALCRECT or DT_WORDBREAK);
// нарисуем текст
DrawText(Canvas.Handle, PChar(s), -1, rct, DT_WORDBREAK);
end;
2. парсить текст и применять Canvas.Font.Style:=[fsBold, fsItalic];
3. 1+2
__________________
Пишу программы за еду.
__________________
|