Показать сообщение отдельно
  #18  
Старый 09.10.2013, 02:16
Аватар для Freeman
Freeman Freeman вне форума
Местный
 
Регистрация: 05.10.2012
Адрес: Санкт-Петербург
Сообщения: 576
Версия Delphi: 6
Репутация: выкл
По умолчанию

Уже больше похоже на нормальное решение, но это не совсем то, что я говорил. Логика по-прежнему сидит в обработчиках кнопок и по-прежнему есть управление компонентами другой (главной) формы с обращением через глобальную переменную.

Если это решение корректно работает, этап освоения DB-компонентов можно считать состоявшимся. Вынос логики в отдельные процедуры и отказ от глобальных переменных не является самоцелью, вначале нужно понять их смысл. Мои прошлые советы, где говорится про интерактивные и неинтерактивные процессы, по-прежнему в силе. Пусть пройдет месяц, ощущение достижения уляжется, и, перечитав их, вполне вероятно в них увидится новый смысл.

Этот смысл по-любому станет понятен, если в проект придется вносить согласованные изменения или появится второй программист: выгода независимых друг от друга частей кода будет видна на практике.

По вопросу из комментария: TDataSet.Next вроде бы вызывает CheckBrowseMode, которая и делает Post или Cancel в зависимости от наличия или отсутствия изменений.
__________________
Не стоит путать форумы с богадельнями. © Bargest
Ответить с цитированием