Вопрос: Как на повернуть на 90 градусов шрифт на компоненте (например TPanel или TLabel), чтоб он отображался не справа налево, а сверху вниз?
Ответ :
Для этого придется самому писать такой компонент, и в нем рисовать текст под углом. Ниже код для отрисовки текста под любым углом.
code:
--------------------------------------------------------------------------------
#include "math.hpp"
void AdvTextOut( AnsiString slString,
TCanvas* pCanvas,
int ilXPos, int ilYPos,
double dlHeightInMm,
double dlAngle )
{
int ilFontHeight = Ceil( double ( dlHeightInMm *
double( GetDeviceCaps( pCanvas->Handle, LOGPIXELSY ) ) / 25.4 ) );
HFONT hFont = CreateFont( ilFontHeight, 0,
dlAngle * 10,
dlAngle * 10, FW_BOLD, false, false,
false,
DEFAULT_CHARSET, OUT_DEFAULT_PRECIS,
CLIP_DEFAULT_PRECIS,
DEFAULT_QUALITY , DEFAULT_PITCH |
FF_DONTCARE,
pCanvas->Font->Name.c_str() );
SelectObject( pCanvas->Handle, hFont );
TextOut(pCanvas->Handle, ilXPos, ilYPos, slString.c_str(), slString.Length());
DeleteObject( hFont );
}
//----------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Canvas->Ellipse(195, 195, 205, 205);
Canvas->Font->Name = "Times New Roman";
AdvTextOut("My Text", Canvas, 200, 200, 6.4, 75);
}
--------------------------------------------------------------------------------
!!! Не все шрифты можно вывести под углом. !!!!!
(c) 2003 Borland X Portal
|