![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как емулировать CONDENSED для шрифта [D6]
Леван © (2004-08-09 12:17:00)Привет Мастерам!
Известно, что режим Condensed (и соответственно, Double width)
для матричного принтера меняет ширину шрифта , не изменяя висоту.
Как добиться того же результата в Виндовс ?
(стандартный font.size пропорционально меняет оба параметра фонта)
s999 (2004-08-10 12:58:00) [1]
> возможность с поможью структури
> TLogFont из существующего фонта создать динамически
Что ты имеешь в виду под существующим фонтом? Существующий экземпляр TFont? Конечно можно, только на выходе будет не другой экземпляр TFont-а, а HFont. То есть, присваиваешь все что можно в TLogFont и создаешь HFont, далее с помощью функции SelectObject определяешь этот HFont некоторому Canvas.
Леван (2004-08-10 09:31:00) [2]to s999
Я извиняюсь, но есть ли возможность с поможью структури
TLogFont из существующего фонта создать динамически новый фонт с теми же характеристикаи, но меньшей ширины
из Вашего последнего постинга я это не понял
еще раз извините
Леван
s999 (2004-08-09 17:49:00) [3]
> как получить эту самую структуру уже существующег фонта?
var
F:TLogFont;
NewFont: HFONT;
....
with F do
begin
.....
lfHeight := 10;
lfWidth := 20;
StrPCopy(lfFaceName, 'Arial');
.....
end;
NewFont := CreateFontIndirect(F);
....
Леван (2004-08-09 17:25:00) [4]to KSergey
Спасибо
попробую разобраться
KSergey (2004-08-09 17:15:00) [5]Плохо искал...
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/cordspac_3c6d.asp
Либо см. win32sdk.hlp
Леван (2004-08-09 17:12:00) [6]to KSergey :
не смог найти в хелпе описание setmapmode
Может, подкинете ссилочку ?!
to s999
как получить эту самую структуру уже существующег фонта?
KSergey (2004-08-09 16:34:00) [7]Можно еще масштаб изометрический включить...
SetMapMode (Printer.Canvas.Handle, MM_...)
Леван (2004-08-09 16:31:00) [8]to s999
Интересно!
спасибо, попробую
s999 (2004-08-09 15:45:00) [9]
> стандартный font.size пропорционально меняет оба параметра
> фонта
Да, используя TFont этого не получится. А если работать напрямую через API, то можно. Структура LogFont имеет как lfHeight так и lfWidth.
simpson (2004-08-09 15:37:00) [10]Возможно.
Режим Condensed (как и Draft и т.п.) - это свойство внутренних шрифтов принтера.
При печати с помощью средств Windows внутренние шрифты принтера не используются и вся информация передается принтеру в виде графики.
Если необходимо напечатать что-нибудь с использованием внутренних шрифтов принтера, в том числе и в режиме Condensed, придется выводить информацию на принтер с помощью специфического для него языка команд, таких, как ESC/POS или EPL, не используя стандартные средства Windows.
Так что, решайте сами.
Леван (2004-08-09 14:51:00) [11]Похоже, это уже невозможно в принципе
или я не прав, мастера?