Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.05.15;
Скачать: CL | DM;

Вниз

Рисование на Canvas принтера и шрифты   Найти похожие ветки 

 
KSergey ©   (2003-05-03 16:38) [0]

Два вопросика:
1) Как выудить список именно TrueType шрифтов (не в диалоге выбора, а из Fonts вычитать их св-ства...)
2) Такой кусочек кода:

// Rect - некая заполненная структура

Printer.BeginDoc;
with Printer.Canvas do
begin
// рисуем квадратик
Brush.Color := BackColor;
Brush.Style := bsSolid;
FillRect (Rect);
// выводим текст
Font := ... Font.Height := Floor(Font.Size/72*254);
(a) TextRect (Rect, ..,.., Text);
(b) TextOut (..,.., FText[0].Text);
end;
Printer.EndDoc;


Имеется в виду, что применяется 1 вариант: (a) или (b)
Что не понятно:
в варианте (b) - все нормально, вызывается код хоть сколько раз - и квадрат и текст печатается, текст не обрезается (понятно).
в варианте (a) - при первом вызове печатается и квадрат и текст, при последующих - квадрата нет... Текст нормально обрезается.

Где я не прав? Может надо сброс какой-то делать? Цвета утанавливаются для квадрата, просто здесь сократил.


 
MBo ©   (2003-05-04 08:32) [1]

function EnumFntProc(var elf:TEnumLogFont;var ntm:TNewTextmetric;
FontType: dword; strings:TStrings):integer; stdcall;
begin
if FontType=TRUETYPE_FONTTYPE then strings.Add(elf.elfFullName);
Result:=1;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
EnumFontfamilies(Canvas.Handle, nil,@EnumFntProc, Integer(ListBox1.Items));
end;


 
KSergey ©   (2003-05-05 07:34) [2]

Ага, кажися начал докапываться по 2-му вопросу... Оказ. эта гадина TextRect затирает весь(!) указанный Rect кистью, а на промежутке до TextRect я как раз кисть на белую менял...

Надо, оказ., поставить Brush.Style := bsClear

MBo © (04.05.03 08:32)

Осмыслил. Круто! Спасибо. (особенно описание последнего параметра в EnumFntProc понравилось)



Страницы: 1 вся ветка

Текущий архив: 2003.05.15;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.021 c
1-46686
Serg!
2003-05-03 19:04
2003.05.15
Куда деваются символы?


1-46788
Начинака
2003-05-01 13:34
2003.05.15
ListView в runtime ...


1-46785
XAOC
2003-05-01 18:50
2003.05.15
Иначально скрытая форма


14-46981
Valentino
2003-04-25 15:53
2003.05.15
Как еще кроме Application.ExeName найти каталог моей программы?


1-46726
Loki
2003-05-04 23:07
2003.05.15
TWebBrowser