Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.05.15;
Скачать: [xml.tar.bz2];

Вниз

Рисование на 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.44 MB
Время: 0.008 c
8-46848
Step[B.M.]
2003-02-04 02:16
2003.05.15
Не могу в Blob-поле InterBase вставить BMP. Что не ТАК ?


3-46578
Silver_
2003-04-23 10:39
2003.05.15
TADODataSetEvents как сделать или где взать


14-46961
NetBreaker666
2003-04-26 23:07
2003.05.15
Да, и есть здесь хоть кто-нибудь, кто когда-нибудь


6-46883
shane54
2003-03-19 17:12
2003.05.15
Больше одного письма через SMTP


1-46805
Yanis
2003-05-02 15:05
2003.05.15
Что за ошибка.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский