| |
 |
How do I use the Windows API callback function EnumFontFamilies()?
The Following example adds the list of fonts and sizes for the current printer to a TMemo component.
Example:
uses Printers;
function EnumFontFamilyProc(var lf : TLogFont;
var tm : TNewTextMetric;
FontType : integer;
var Memo : TMemo) : integer
{$IFDEF WIN32} stdcall; {$ELSE} ; export; {$ENDIF}
begin
Memo.Lines.Add(StrPas(@lf.lfFaceName) +
#32 + IntToStr(lf.lfHeight));
result := ;
end;
function EnumFontFamiliesProc(var lf : TLogFont;
var tm : TNewTextMetric;
FontType : integer;
var Memo : TMemo) : integer
{$IFDEF WIN32} stdcall; {$ELSE} ; export; {$ENDIF}
begin
if FontType = TRUETYPE_FONTTYPE then begin
Memo.Lines.Add(StrPas(@lf.lfFaceName) + #32 + 'All Sizes');
end else
EnumFontFamilies(Printer.Handle,
@lf.lfFaceName,
@EnumFontFamilyProc,
LongInt(@Memo));
result := ;
end;
procedure TForm .Button Click(Sender: TObject);
var
tm : TTextMetric;
i : integer;
begin
if PrintDialog .Execute then begin
EnumFontFamilies(Printer.Handle,
nil,
@EnumFontFamiliesProc,
LongInt(@Memo ));
end;
end;
|
|
| Hits/month |
2,500,000+ |
Downloads (Since May 2000) |
7,393,709 |
| Total Files |
6,023 |
| Forum msgs |
7,670 |
| Articles/FAQs |
70+/900+ |
Top Selling Software at Amazon
|