 
			
				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  
		
	
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	 |