На главную
Подписка
Новости


Рейтинг@Mail.ru











Главная / DELPHI / Часто задаваемые вопросы и ответы на них / Редакторы текста, отчеты / При выполнении диалога FontDialog со свойством Device равным fdBoth or fdPrinter, появляется ошибка "There are no fonts installed". Сделать домашней страницей Добавить в избранное Написать писмо

При выполнении диалога FontDialog со свойством Device равным fdBoth or fdPrinter, появляется ошибка "There are no fonts installed".


Эти установки должны показать шрифты совместимые либо с принтером либо с экраном. В примере диалог Windows ChooseFont вызывается напрямую чтобы показать список шрифтов, совместимых одновременно и с экраном и с принтером.
Пример:

uses Printers, CommDlg;

procedure TForm1.Button1Click(Sender: TObject);
var
   cf : TChooseFont;
   lf : TLogFont;
   tf : TFont;
begin
   if PrintDialog1.Execute then
       begin
           GetObject(Form1.Canvas.Font.Handle, sizeof(lf),@lf);
           FillChar(cf, sizeof(cf), #0);
           cf.lStructSize := sizeof(cf);
           cf.hWndOwner := Form1.Handle;
           cf.hdc := Printer.Handle;
           cf.lpLogFont := @lf;
           cf.iPointSize := Form1.Canvas.Font.Size * 10;
           cf.Flags := CF_BOTH or CF_INITTOLOGFONTSTRUCT or
               CF_EFFECTS or CF_SCALABLEONLY or CF_WYSIWYG;
           cf.rgbColors := Form1.Canvas.Font.Color;
           if ChooseFont(cf) <> false then
               begin
                   tf := TFont.Create;
                   tf.Handle := CreateFontIndirect(lf);
                   tf.COlor := cf.RgbColors;
                   Form1.Canvas.Font.Assign(tf);
                   tf.Free;
                   Form1.Canvas.TextOut(10, 10, 'Test');
               end;
       end;
end;



Источник: Дельфи. Вокруг да около.


Copyright ©   "Мастера DELPHI"   E-mail:   delphi@mastak.com  http://www.delphimaster.ru
Источник получения информации: http://www.delphimaster.ru
Hosted by uCoz