Наконец-то я закончил экспериментировать с различными вариантами закрепления строк в нижней части таблицы и решил поделиться результатами... Как и предполагалось, наиболее эффективным оказался
наиболее простой вариант, а именно... еще один грид, расположенный непосредственно под первым.
Почему? Все очень просто: вариант с отрисовкой строк на канве исходного компонента я тоже реализовал, но он оказался довольно медлительным, прорисовка всех ячеек на деле является очень ресурсоемким процессом (при прокрутке таблица начинает изрядно притормаживать, особенно если рисуем несколько "серых" строк да еще и текст в них выводим).
Гораздо более легкий во всех смыслах способ... берем 2 компонента StringGrid, у верхнего убираем горизонтальную прокрутку, состыковыаем их вплотную друг к другу (разумеется ширина колонок идентична), и в событии .onPrepareCanvas для второго грида пишем буквально следующее:
- Код: Выделить всё
StringGrid1.LeftCol:=StringGrid2.LeftCol;
И все, никаких прочих заморочек!