Hallo,
den Hintergrund einer Zeile musst du mit FillRect() malen - schau mal hier:
klick
Falls deine Zeilen unterschiedliche Höhen brauchen, dann findest du hier ein Beispiel:
klick
Allgemein: MenuItems gehören zur Kategorie der Action-Controls, eine ListBox ist ein Data-Control. Natürlich lässt sich Code an den Wechsel des selektierten Items in der ListBox koppeln, aber wenn es dir mehr um die Auslösung einer Aktion geht, dann nimm besser ein Action-Control dazu: TMenuItem, TButton, ... alles woran du eine TAction knüpfen kannst.
Freundliche Grüße