powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Текст наискосок под углом
5 сообщений из 5, страница 1 из 1
Текст наискосок под углом
    #32165798
Alexandr Plus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пжлста подскажите как текст наискосок выдать (не рисунок bmp, jpg с косым текстом, а текст, чтобы менять можно было в run-time на любой другой). Какие Win API или внутренностей Delphi достаточно будет?
...
Рейтинг: 0 / 0
Текст наискосок под углом
    #32165815
_designer_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Открываешь
C:\Program Files\Common Files\Borland Shared\MSHelp\WIN32SDK.HLP
Закладка Index
Набираешь CreateFontIndirect

... и волосы становятся мягкими и шелковистыми...
...
Рейтинг: 0 / 0
Текст наискосок под углом
    #32165836
Alexandr Plus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за ответ. Но.
Но не сами буквы косые нужны, а текст чтобы написать поперек
формы на TForm. Хотя бы вертикально - есть что-то готовое в Delphi?
...
Рейтинг: 0 / 0
Текст наискосок под углом
    #32165848
_designer_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
function CreateAngledFont(oFont : TFont; Angle : integer): HFont;
// передаю другой oFont, чтобы с параметрами не гемороиться
// а просто списать с уже существующего
var
  LogFont : TLogFont;
begin
  with LogFont do
  try
    lfHeight := oFont.Height;
    lfWidth :=  0 ; { have font mapper choose }
    lfEscapement := Angle; { only straight fonts }
    lfOrientation := Angle; { no rotation }
    if fsBold in oFont.Style then
      lfWeight := FW_BOLD
    else
      lfWeight := FW_NORMAL;
    lfItalic := Byte(fsItalic in oFont.Style);
    lfUnderline := Byte(fsUnderline in oFont.Style);
    lfStrikeOut := Byte(fsStrikeOut in oFont.Style);
    lfCharSet := Byte(oFont.Charset);
    if AnsiCompareText(oFont.Name, 'Default') =  0  then  // do not localize
      StrPCopy(lfFaceName, DefFontData.Name)
    else
      StrPCopy(lfFaceName, oFont.Name);
    lfQuality := DEFAULT_QUALITY;
    { Everything else as default }
    lfOutPrecision := OUT_DEFAULT_PRECIS;
    lfClipPrecision := CLIP_DEFAULT_PRECIS;
    case oFont.Pitch of
      fpVariable: lfPitchAndFamily := VARIABLE_PITCH;
      fpFixed: lfPitchAndFamily := FIXED_PITCH;
    else
      lfPitchAndFamily := DEFAULT_PITCH;
    end;
  finally
  end;
  Result := CreateFontIndirect(LogFont);
end;

Основной текст:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
...
var nFont, oFont : HFont;
...
Canvas.Font.Name := 'Times New Roman';
nFont := CreateAngledFont(Canvas.Font,  900 );
oFont := Canvas.Font.Handle
Canvas.Font.Handle := nFont;
...
Canvas.TextOut(ТудыX, СюдыY, 'Трям!');
...
Canvas.Font.Handle := oFont;
DeleteObject(nFont);

При чем здесь повернутые БУКВЫ я не понял...
...
Рейтинг: 0 / 0
Текст наискосок под углом
    #32165961
Alexandr Plus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Excuse me! Сходу не усек, это же графика.
Спасибо.
Но достаточно одного параметра lfEscapement
...
lfEscapement := Angle; { only straight fonts }
lfOrientation := Angle; { no rotation }

...
lfEscapement := Angle; { only straight fonts }
lfOrientation := 0;
//Angle; { no rotation }
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Текст наискосок под углом
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]