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

Цитата:
Сообщение от Uniq!
Есть нюанс, что при загрузке данных используются и другие формы.
Формы должны использоваться для отображения данных, поскольку они визуальные компонеты. Исключение -- главная форма. Она запускает интерактивный процесс, поэтому ей позволено брать на себя больше. Любое другое использование форм -- быдлокод. Формы не предназначены для передачи данных.

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

Можете закидать меня помидорами, но TDataModule я считаю быдлокодерским компонентом. В Delphi он реализован неправильно: отсутствует возможность класть созданный в проекте экземпляр DataModule на форму, как это происходит с фреймами. Модуль данных должен быть невизуальным аналогом фрейма, а не нарушением агрегации, как сейчас.

Цитата:
Сообщение от Uniq!
Процедуры AfterConnect для Global И Local connection идентичны (с точностью до имён)
Они не должны быть идентичны, это должен быть физически один и тот же обработчик. В IDE есть возможность назначить один обработчик нескольким событиям, в том числе у разных компонентов, выбирая его из выпадающего списка. Это азы.

Другой явный образчик быдлокода -- обращение из события к самому себе через внешнюю переменную. Грубо говоря, в коде нужно везде поубирать обращения к fDM к чертовой матери.

Цитата:
Сообщение от Uniq!
Функция Load:
Тут тоже все поставлено с ног на голову. Не формы управляют процессом, а процесс управляет формами. Форма-заставка -- всего лишь бессловесная табличка, в ней не место коду загрузки данных.

Цитата:
Сообщение от Mrak
а udl файлы не нравятся?
Возможно, это будет решением. Тогда в настройках можно задавать имя UDL-файла.
Ответить с цитированием