Programowanie w języku Delphi » FAQ

Jak zrobić, aby w ListBox każda czcionka była w osobnym kroju ( tak jak w Wordzie 2000)

Jeżeli ktoś ma Worda 2000 to zauważył pewnie, że po rozwinięciu listy czcionek każda napisana jest osobną czcionką :) Jak to zrobić na przykładzie ListBoxa.

W on Create:

ListBox1.Items := Screen.Fonts;

W DrawItem listboxa:
with ListBox1.Canvas do
begin
  FillRect(Rect);
  Font.Name := ListBox1.Items[Index];
  Font.Size := 0;
  TextOut(Rect.Left, Rect.Top, Font.Name);
end;

W MeasureItem listboxa:
with ListBox1.Canvas do
begin
  Font.Name := Listbox1.Items[Index];
  Font.Size := 0;
  Height := TextHeight(Font.Name);
end;


Teraz w Inspektorze Obiektów musisz zmienić właściwość "Style" komponentu "ListBox" na "lbOwnerDrawVariable".