скрыть

скрыть

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Google  
 

Отображение списка шрифтов



Оформил: DeeCo

//With a Callback function: 
//************************ 

function EnumFontClBack(var lp: TEnumLogFont;
   var tm: TNewTextMetric;
   dwType: DWORD;
   lpData: lParam): Integer; stdcall;
 begin
   Result := 1;
   with TForm1(lpData), Combobox1 do
   begin
     Items.Add(lp.elfLogFont.lfFaceName);
   end;
 end;


 procedure TForm1.FormShow(Sender: TObject);
 begin
   EnumFontFamilies(Canvas.Handle, nil, @EnumFontClBack, Integer(Self));
 end;

 procedure TForm1.ComboBox1Change(Sender: TObject);
 begin
   label1.Font.Name := Combobox1.Text;
 end;


 // Easier Way: 
//***************************************** 

{ 
 To show the items in the corresponding font 
 The Style of the Listbox should be lbOwnerDrawVariable 
}


     procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
   Rect: TRect; State: TOwnerDrawState);
 begin
   with ListBox1 do
   begin
     Canvas.fillrect(rect);
     Canvas.Font.Style := [fsbold];
     Canvas.Font.Name  := Listbox1.Items[Index];
     Canvas.textout(rect.Left, rect.Top, Listbox1.Items[Index]);
   end;
 end;

 procedure TForm1.FormCreate(Sender: TObject);
 begin
   ComboBox1.Items := Screen.Fonts;
 end;

 procedure TForm1.ComboBox1Change(Sender: TObject);
 begin
   label1.Font.Name := ComboBox1.Items[ComboBox1.ItemIndex];
 end;





Copyright © 2004-2016 "Delphi Sources". Delphi World FAQ




Группа ВКонтакте   Ссылка на Twitter   Группа на Facebook