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

Вниз

Как узнать, TrueType шрифт или растровый?   Найти похожие ветки 

 
cult   (2002-10-15 17:29) [0]

Вот и весь вопрос.
Для моих извращений растровые шрифты не годятся, поэтому мне их надо упорно игнорировать. Но как узнать?...

Спасибо.


 
MBo   (2002-10-15 17:34) [1]

EnumFontFamilies
EnumFontFamProc
FontType


 
cult   (2002-10-15 17:40) [2]

спасибо, пошел смотреть


 
cult   (2002-10-15 18:25) [3]

чего-то не пашет вот такой текст :(



procedure TForm1.Button1Click(Sender: TObject);
var
Fonts : TStringList ;
LFont: TLogFont;
DC : HDC ;
begin
Fonts := TStringList.Create ;
Fonts.Sorted := True ;
DC := GetDC(Handle) ;
FillChar(LFont, SizeOf(LFont), 0);
EnumFonts(DC,nil, @TForm1.FontPerform, Pointer(Fonts));
ReleaseDC(Handle, DC) ;
end;

function TForm1.Fontperform(var LogFont: TLogFont; var TextMetric: TTextMetric;
FontType: Integer; Data: Pointer):integer;
begin
Result:=1;
Showmessage(inttostr(textmetric.tmheight));
if (TextMetric.tmPitchAndFamily and TMPF_TRUETYPE) <> 0 then
TStrings(Data).Add(LogFont.lfFaceName);
Memo1.Lines.Assign(Data);
end;



При запуске ругается в самой callback на попытку обращения к TextMetric, т.е. уже ShowMessage не работает. Что тут не так?


 
MBo   (2002-10-15 18:39) [4]

function EnumFntProc(var elf:TEnumLogFont;var ntm:TNewTextmetric;
FontType: dword ;strings:TStrings):integer; stdcall;
var s: string;
begin
if fonttype=TRUETYPE_FONTTYPE then begin
s:="TTF "+elf.elfFullName
end else
s:=elf.elfLogfont.lfFacename;
if (elf.elfLogFont.lfPitchAndFamily and FIXED_PITCH)=FIXED_PITCH
then s:="* Fixed * "+s;
strings.Add(S);
Result:=1;
end;


procedure TForm1.Button1Click(Sender: TObject);
var sl:tstringlist;
i:integer;
begin
sl:=tstringlist.create;
sl.Assign(Screen.Fonts);
for i:=0 to sl.count-1 do
EnumFontfamilies(Canvas.Handle, PChar(sl[i]),@EnumFntProc,
Integer(ListBox1.Items));
sl.free;
end;



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

Форум: "Основная";
Текущий архив: 2002.10.24;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.008 c
4-78717
Slym
2002-09-10 06:46
2002.10.24
Как показать свое окошко TopMost, но не дезактивировать предыдуще


1-78418
Chinas
2002-10-11 17:55
2002.10.24
Форма из DLL, как правильно закрыть?


3-78231
ruslan_as
2002-10-01 17:46
2002.10.24
Как включить событие OnCalcFields


4-78725
Z0id
2002-09-12 11:04
2002.10.24
Тюнинг стандартных диалогов


1-78510
msdn1
2002-10-13 22:10
2002.10.24
Richedit





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский