![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Про фонты дисплея
Fonts © (2009-01-29 17:54:00)Уважаемые друзья, подскажите, пожалуйста, можно ли, каким либо способом из
Screen.Fonts"вычленить" моноширийные фонты (типа Fixedsys, Courier и т.п.), естественно ничего не зная оFont.Name?.
Спасибо
Fonts (2009-01-30 19:18:00) [1]> Palladin © (30.01.09 19:00) [7]
Респект, то, что нужно!
Palladin (2009-01-30 19:00:00) [2]
> Правильный$Вася (29.01.09 18:57) [4]
Это свойство определяет в каком стиле вывестишрифт, который может поддерживать как фиксированную так и переменную ширину символов.
> Fonts (30.01.09 18:29) [6]
Var
f:TFont;
dt:THandle;
i:Integer;
tm:TEXTMETRIC;
Function _FontPitchBitsToStr(Const b:Byte):String;
Begin
If (b and TMPF_FIXED_PITCH)<>TMPF_FIXED_PITCH Then Result:='Fixed,' Else Result:='';
If (b and TMPF_VECTOR)=TMPF_VECTOR Then Result:=Result+'Vector,';
If (b and TMPF_TRUETYPE)=TMPF_TRUETYPE Then Result:=Result+'TrueType,';
If (b and TMPF_DEVICE)=TMPF_DEVICE Then Result:=Result+'Device,';
If Result<>'' Then SetLength(Result,Length(Result)-1);
End;
begin
f:=TFont.Create;
Try
dt:=GetDC(GetDesktopWindow);
Try
For i:=0 to Screen.Fonts.Count-1 Do
Begin
f.Name:=Screen.Fonts[i];
SelectObject(dt,f.Handle);
GetTextMetrics(dt,tm);
Memo1.Lines.Add(Screen.Fonts[i]+' - '+_FontPitchBitsToStr(tm.tmPitchAndFamily));
End;
Finally
ReleaseDC(GetDesktopWindow,dt);
End;
Finally
f.Free;
End;
end;
Fonts (2009-01-30 18:29:00) [3]Собственно, я не совсем понял каким образом воспользоваться Правильный$Вася (29.01.09 18:57) [4] :(
Для проверки реализовал примерно это:
ComboBox1.Items:= Screen.Fonts;
ComboBox2.Clear;
for i:= 0 to ComboBox1.Items.Count - 1 do
begin
MyFont:= TFont.Create;
MyFont.Name:= ComboBox1.Items[i];
if MyFont.Pitch = fpFixed then //здесь постоянно MyFont.Pitch = fpDefault :(
ComboBox2.Items.Add(ComboBox1.Items[i]);
MyFont.Free;
end;
Направьте на путь истинный, как мне все таки определить какие фонты моноширинные, а какие нет?
:(
Anatoly Podgoretsky (2009-01-29 19:36:00) [4]> Jeer (29.01.2009 18:39:01) [1]
А что бывают две?
Правильный$Вася (2009-01-29 18:57:00) [5]
Pitch property (TFont)
Specifies whether the characters in the font all have the same width.
fpFixed The font pitch is set to fixed. All characters in the font have the same width.
Fonts (2009-01-29 18:46:00) [6]Опять:(
откликлулся -> откликнулся
Fonts (2009-01-29 18:45:00) [7]Уже приятно, что кто-то откликлулся:)
Действительно, описАлся
моноширинные
:(
Jeer (2009-01-29 18:39:00) [8]
> "вычленить моноширин.."
Что-то мне напомнило..