Delphi - Font nevek megjelenítése egy TListBox-ban

forráskód letöltése
Ebből a cikkből megtudhatjuk, hogy hogyan lehet létrehozni olyan TListBox komponenst, amelyben automatikusan megjelenik az összes betűtípus, mely a Windows-ban installálva lett, ráadásul oly módon, hogy minden betűtípus neve az adott fonttal van kiírva. Ebből a cikkből megtudhatjuk, hogy hogyan lehet létrehozni olyan TListBox komponenst, amelyben automatikusan megjelenik az összes betűtípus, mely a Windows-ban installálva lett, ráadásul oly módon, hogy minden betűtípus neve az adott fonttal van kiírva.

A példaprogram megnyitása előtt a FontListBox.pas-ban lévő komponenst telepíteni kell a Delphi-ben.

Ahhoz, hogy ezt a feladatot megoldhassuk, létre kell hoznunk egy olyan komponenst, mely a TListBox-ból származik és az elemeit nekünk kell majd kirajzolni, mivel ezek mindegyike egyedi lesz.

A komponens konstruktorában állítjuk be, hogy az egyes elemeket egyedileg szeretnénk kirajzolni.

Style:=lbOwnerDrawVariable;

Ehhez a kirajzoláshoz az OnDrawItem, illetve az OnMeasureItem eseményeket kell majd felhasználnunk.

Az OnMeasureItem-nél azt kell tudatnunk a komponenssel, hogy az adott elemnek mekkora lesz a magassága. Mivel az egyes betűtípusok azonos méret (Size) esetén is eltérő magasságúak lehetnek, így minden fontnál a TextHeight függvénnyel lekérdezzük az adott típus magasságát.

Az OnDrawItem-nél kerül sor az egy-egy elem tényleges kirajzolására. Itt egyszerűen csak átváltunk az adott betűtípusra, majd kiírjuk a nevét.