Показать сообщение отдельно
  #3  
Старый 14.06.2011, 09:30
Аватар для NumLock
NumLock NumLock вне форума
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
__________________
Пишу программы за еду.
__________________
Ответить с цитированием