В чем именно проблема? Кнопки отображаются точно в требуемом положении.
Вы уверены, что хотите квадратные кнопки без текста?
Использование:
Button.Left := 0;
Button.Width := CategoryPanel.ClientWidth - 2;
Делает их точной шириной как панель минус смещение пикселя.
Использование:
Button.Width: = CategoryPanel.ClientWidth;
Button.Left: = -1;
Создает наибольшую ширину. Это смещение в 1 пиксель.
[[Я использую 2010, чтобы быть справедливым]].