powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как на канве текст вывести у-же чем нормально?
4 сообщений из 4, страница 1 из 1
Как на канве текст вывести у-же чем нормально?
    #32187869
Alexander2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как на канве текст вывести ужатый?

mfc.Font.Name:='Arial';
mfc.Font.Size := 16;
mfc.Font.Style:=[fsItalic,fsBold];
mfc.TextOut(60,20,'My text');

это выводит нормальный текст, а мне надо емго немного сжать по длине

ну и по высоте может пригодится

Кто знает как?
...
Рейтинг: 0 / 0
Как на канве текст вывести у-же чем нормально?
    #32188397
Vo!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Vo!
Гость
используя API-функции, например CreateFontIndirect можно создать более изощренный шрифт, нежели чем классом TFont. Даже направленный под углом.
потом его можно внедрить в канву:

SelectObject(Canvas.Handle, hFont)
или
Canvas.Font.Handle = hFont

и рисуй ;)
...
Рейтинг: 0 / 0
Как на канве текст вывести у-же чем нормально?
    #32188531
AAlexander
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а где он сжимается то?
...
Рейтинг: 0 / 0
Как на канве текст вывести у-же чем нормально?
    #32188744
LexusR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
примерно в таком виде
Код: 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.
procedure TForm1.BitBtn1Click(Sender: TObject);
var
  wf, owf: HFONT;
  DC: HDC;
  MyRect : TRect;
  FontWidth,FontHeight : integer;
begin
  Label1.Caption := 'Просто текст';
  MyRect := Rect( 0 , 0 ,Label2.Width,Label2.Height);
  FontHeight := Label2.Height;
  FontWidth  :=  3 ;

  Label2.Canvas.FillRect(MyRect);
  wf := CreateFont(
    FontHeight,FontWidth,  0 ,  0 , FW_NORMAL ,  0 ,  0 ,  0 ,
    RUSSIAN_CHARSET,
    OUT_DEFAULT_PRECIS,
    CLIP_DEFAULT_PRECIS,
    DEFAULT_QUALITY,
    DEFAULT_PITCH or FF_DONTCARE,
    'MyFont');
  owf := SelectObject(Label2.Canvas.Handle, wf);
  DrawText(Label2.Canvas.Handle, PChar('Просто текст'), - 1 ,MyRect,
    DT_LEFT or DT_TOP or DT_NOPREFIX);
  DeleteObject(SelectObject(Label2.Canvas.Handle, owf));
end;
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как на канве текст вывести у-же чем нормально?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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