Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вертикальный TLabel


Avsam ©   (2002-10-04 14:25:00) 

Как расположить TLabel вертикально?


Kotka   (2002-10-05 16:46:00) [1]

Там в кладовке есть компонент AntLabel(по-моему так называется)


mukha   (2002-10-05 15:18:00) [2]

А может так?
procedure TForm1.Button1Click(Sender: TObject);
Var
lf: TLogFont;
x, y: Integer;
begin
With Label1 Do
With Canvas Do
Begin
FillRect( ClientRect );
Font.Name := "Arial";
Font.Size := 20;
Font.Style := [fsBold];
Font.Color:=clLime;
x:= 40;
y:= Height - 10;
GetObject( Font.Handle, Sizeof(lf), @lf );
lf.lfEscapement := 900; // Угол наклона
Font.Handle := CreateFontIndirect( lf );
TextOut(x-TextHeight("A")-5, y,"Текст по вертикали" );
DeleteObject( Font.Handle );
Font.Handle := 0;
End;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Label1.Caption:="";
Label1.Width:=90;
Label1.Height:=300;
Label1.Transparent:=true;
end;


Avsam   (2002-10-04 17:27:00) [3]

Вроде поворачивает. Но куда-то скрывается остальная часть слова.
То есть, при повороте на 45 градусов, видна только первая буква слова и то наполовину.
При повороте на 90 - букв вообще не видно.
Попробуйте с помощью вышеизложенной функции повернуть Label.
Пробовал также Panel - результат тот же.


yaJohn   (2002-10-04 16:35:00) [4]

>Будда, подскажи где можно посмотреть библиатеку JVCL .
http://delphi-jedi.org/Jedi:CODELIBJCLдитя мое!

>нужно создать логический шрифт (только TTF), в его структуре есть поле угла вывода символов
unit RotateFontUnit;

interface

uses Graphics, Windows;

procedure RotateFont(Font: TFont; Orientation: integer);

implementation
type
TxFont = class (TFont) end;

procedure RotateFont(Font: TFont; Orientation: integer);
var h:HFONT;
t:tagLOGFONTA;
f:TxFont;
i:integer;
begin
fillchar(t,sizeof(t),0);
t.lfHeight:=Font.Height;
for i:=0 to length(Font.Name) do
t.lfFaceName[i-1]:=Font.Name[i];
t.lfEscapement:=Orientation;
h:=CreateFontIndirect(t);
f:=TxFont.Create;
f.SetHandle(h);
Font.Assign(f);
end;

end.


xCom   (2002-10-04 16:01:00) [5]

Дяда Будда, подскажи где можно посмотреть библиатеку JVCL.
Очень интересно.


MBo   (2002-10-04 14:55:00) [6]

нужно создать логический шрифт (только TTF), в его структуре есть поле угла вывода символов


Avsam   (2002-10-04 14:39:00) [7]

Текст надо расположить повернутым на 90 градусов.
То есть, если повернуть голову на сторону, увидим нормальный TLabel :)
Очень не хочется использовать чужие библиотеки.
Хотелось бы просто увидеть идею.


Дядя Будда   (2002-10-04 14:31:00) [8]

Посмотри в библиотеке JVCL. Там туча разных навернутых лэйблов...


Best Before 2024   (2002-10-04 14:28:00) [9]

Так

T
e
x
t

или с поворотом на 90 градусов


Наверх

Титульная страница Поиск, карта сайта Написать письмо