А можно кратко объяснить как пользоваться StatFile?
нужно упаковать в него оформление
Даже не знаю с какой стороны подступить...
На главную форму программы уроните статфайл - он будет главным. Назначьте это файл свойству statfile этой формы - с этого момента он будет автоматически писаться/читаться при загрузке/выгрузке этой формы.
Чтобы хранить настройки/данные конкретных виджетов этой формы - назначьте в нужных виджетах опять-таки свойство statfile опять-таки на этот файл.
Чтобы опознавать виджет в статфайле, когда нужен доступ в коде - назначьте уникальное значение свойству виджета statvarname (хотя здесь есть умолчание).
У виджетов-редакторов можно назначить, что сохранять - данные и/или положение/геометрию {optionedit: oe_savestate, oe_savevalue}.
"oe_savevalue" может сохранить даже последнее содержимое грида (чем не маленькая БД ? ).
Есть режим "inmemory" - грубо говоря, это как подсекция главного статфайла, и назначать эти файлы другим формам.
Читать и писать данные можно также из кода (например, когда стартовый датамодуль нуждается в них еще до загрузки главной формы ) - через ReadStat/WriteStat/UpdateStat. UpdateStat удобно использовать без привязанного виджета - просто сохраняете/восстанавливаете в/из файла значение нужной переменной.
TDrawGrid в событие oncellevent/cek_keydown - info.grid = nil
Долго не мог понять, почему по клику я могу выделить ячейку, а по нажатию клавиши получаю SIGSEGV...
Здесь нужно анализировать, от кого событие - и потом читать из соответствующих полей "переключаемой" структуры INFO ( похоже на UNION из C/C++).
ПС:
Сгенерируйте доку и смотрите по гиперссылкам- иначе повеситесь разбираться в этих тонкостях.