Hola bulc.
Hice ese cácluculo para centrar verticalmente el texto de forma aproximada.
La mitad del alto es
Rect.Top+Rect.Bottom div 2 y ya que están igualados, también se podría haber usado I
mageList1.Height div 2.
Código:
+----------+ Top
| |
|----------| Top+Bottom / 2
| |
+----------+ Button
Del mismo modo el font se divide a la mitad para acomodarse al centro. En ese momento no me acordé pero mucho mas exácto es usar:
Código Delphi
[-]
Canvas.TextOut(Rect.Left + ImageList1.Width + 10,
(ImageList1.Height div 2)-(Canvas.TextHeight(Items[Index]) div 2), Items[Index]);
Saludos.