![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как получить список шрифтов только фиксированной ширины? [D6, Win2k]
Aleksandr © (2002-04-04 10:40:00)Уважаемые коллеги!
Надо мне отфильтровать список экранных шрифтов, чтобы остались только те, которые имеют фиксированную ширину (типа Courierа). Только вот не получается... Может, кто знает?
Dimka Maslov (2002-04-04 11:41:00) [1]procedure CreateFontList(FontList: TStringList);
var
i:integer;
S:String;
Ch:Char;
W:integer;
Flag:Boolean;
B:TBitmap;
begin
with FontList do begin
B:=TBitmap.Create;
B.Width:=32;
B.Height:=32;
B.Canvas.Font.Size:=8;
for i:=0 to Screen.Fonts.Count-1 do begin
S:=Screen.Fonts[i];
B.Canvas.Font.Name:=S;
W:=B.Canvas.TextWidth(#32);
Flag:=True;
for Ch:=#33 to #255 do begin
if (B.Canvas.TextWidth(Ch)<>w) then Flag:=False;
if not Flag then Break;
end;
if Flag then Add(S);
end;
B.Free;
end;
end;