Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как получить список шрифтов только фиксированной ширины? [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;


Наверх

Титульная страница Поиск, карта сайта Написать письмо