Как выводить элементы списка разными шрифтами

Previous  Top  Next

    
 

 

Очень удобно выбирать шрифты, когда в списке каждый шрифт написан собой. Например, "Arial" будет написано шрифтом Arial, а "Times" - Times. Список шрифтов лежит в свойстве Fonts объекта Screen.

 

Code:

procedure TForm1.FormCreate(Sender: TObject);

begin

ListBox1.Items := Screen.Fonts;

ListBox1.Style := lbOwnerDrawVariable;

end;

 

// Определение высоты элемента списка

procedure TForm1.ListBox1MeasureItem(Control: TWinControl; Index: Integer;

var Height: Integer);

begin

with ListBox1.Canvas do begin

   Font.Name := ListBox1.Items.Strings[index];

   Font.Size := 0; // Размер шрифта – по умолчанию

 

   Height := TextHeight(ListBox1.Items.Strings[index]) + 2;

end;

end;

 

// Вывод названия шрифта

procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;

Rect: TRect; State: TOwnerDrawState);

begin

with ListBox1.Canvas do begin

   Font.Name := ListBox1.Items.Strings[index];

   Font.Size := 0; // Размер шрифта – по умолчанию

   TextOut(Rect.Left + 1, Rect.Top + 1,

 

     ListBox1.Items.Strings[index]);

end;

end;

 

©Drkb::00659

Автор советов: Даниил Карапетян

e-mail: delphi4all@narod.ru

 

Автор справки: Алексей Денисов

e-mail: aleksey@sch103.krasnoyarsk.su