Главная страница
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.016 c
1-46812
BigDaddy
2003-05-02 18:03
2003.05.15
Назначение обработчиков событий в рантайм


3-46657
Шапранов Сергей Николаевич
2003-04-24 17:36
2003.05.15
максимальное количество записей в Парадоксе


1-46757
Xeon
2003-04-30 21:22
2003.05.15
Drag&Drop


14-46939
Rise
2003-04-25 15:26
2003.05.15
Delphi и Сайт с БД


1-46715
XHelp
2003-05-04 14:51
2003.05.15
Закрытие чужаых программ