Отправляет email-рассылки с помощью сервиса Sendsay

Советы по Delphi

  Все выпуски  

Советы по Delphi


Служба Рассылок Subscribe.Ru проекта Citycat.Ru

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

Здравствуйте, уважаемые подписчики! Сегодня поговорим о том, как в одном списке писать разными шрифтами. Пригодиться это может при выборе шрифта. Удобнее, если каждый шрифт в списке написан не стандартным "MS Sans Serif", а самим собой.

Если свойство Style компонента ListBox установлено в lbOwnerDrawVariable, то вывод элементов на экран, а так же определение их высоты происходит в обработчиках событий DrawItem и MeasureItem. Здесь это и используется. Причем размер шрифта ставится по умолчанию. Для этого Font.Size устанавливается в 0.

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;

Всего доброго!


url: http://delphi4all.narod.ru
email: delphi4all@narod.ru

http://subscribe.ru/
E-mail: ask@subscribe.ru
Поиск

В избранное