![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Помогите расположить текст вертикально. [D6, Win95/98, WinME, NT4, Win2k, WinXP]
Axenow © (2002-04-21 12:41:00)Есть программа она должна выводить огромное количество отчетов, и часть отчетов должны иметь текст, который повернут на 90 градусов.... Пользуюсь QuickRep, но если надо пересяду на другие компоненты по отчетам..
ОЧЕНЬ НАДО!
Andrey007 (2002-04-23 09:35:00) [1]function CreateRotatedFont(F: TFont; Angle: Integer): hFont;
{-create a rotated font based on the font object F}
var LF: TLogFont;
begin
FillChar(LF, SizeOf(LF), #0);
with LF do
begin
lfHeight := F.Height;
lfWidth := 0;
lfEscapement := Angle*10;
lfOrientation := 0;
if fsBold in F.Style then lfWeight := FW_BOLD
else lfWeight := FW_NORMAL;
lfItalic := Byte(fsItalic in F.Style);
lfUnderline := Byte(fsUnderline in F.Style);
lfStrikeOut := Byte(fsStrikeOut in F.Style);
lfCharSet := RUSSIAN_CHARSET;
StrPCopy(lfFaceName, F.Name);
lfQuality := DEFAULT_QUALITY; {everything else as default}
lfOutPrecision := OUT_DEFAULT_PRECIS;
lfClipPrecision := CLIP_DEFAULT_PRECIS;
case F.Pitch of
fpVariable : lfPitchAndFamily := VARIABLE_PITCH;
fpFixed : lfPitchAndFamily := FIXED_PITCH;
else lfPitchAndFamily := DEFAULT_PITCH;
end
end;
Result := CreateFontIndirect(LF);
end;
procedure RotateTextOut(Text: String; X,Y,Angle: Integer; Canva: TCanvas);
begin
Canva.Font.Handle:=CreateRotatedFont(Font,Angle);
Canva.TextOut(X,Y,Text);
Canva.Font.Handle:=CreateRotatedFont(Font,0);
end;
Поворачивает только векторные шрифты (True Type). А вообще есть компоненты, в которых есть возможность выводить текст под углом - типа TLabel и т.д.
Anatoly Podgoretsky (2002-04-21 12:45:00) [2]На сайте производителя