Главная страница
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.018 c
1-46804
Max1111
2003-05-02 14:06
2003.05.15
Стандартная форма открытия файла


3-46591
saha
2003-04-23 12:49
2003.05.15
Запрос select c like


6-46886
ZEE
2003-03-17 16:28
2003.05.15
Как вызвать окошко


1-46734
Mir
2003-05-05 05:46
2003.05.15
Как на одном Label`е отображать текст разным шрифтом, цветом,


1-46751
Carmen
2003-05-01 02:38
2003.05.15
Как сделать автоматическое обновление старой програми