У меня есть собственная среда Delphi / MySQL, которая позволяет мне очень быстро добавлять «новые экраны». Я не поделюсь этим, но могу описать подход, который я выбрал:
Я использую интерфейс с вкладками с иерархией на основе TFrame. Я создаю вкладку и связываю в ней TFrame.
Я забочусь обо всех грубых подключениях и контроле параллелизма, используя стандартную реализацию хранимой процедуры mysql. CustomerSEL, CustomerGET, CustomerUPD, CustomerDEL и т. Д ...
Моя основная форма содержит панель navbar и панель, содержащую TPageControl
Пример классов в моей иерархии
TFrame
TMFrame - мое происхождение, с реализациями интерфейса, захватывающими OnShow, OnHide и некоторые другие особенности
- TWebBrowserFrame
--TDataAwareFrame
--TObjectEditFrame
--TCustomerEditFrame
--TOrderEditFrame
так далее...
--TObjectListFrame
--TCustomerListFrame
и т.д ...
и некоторые диалоги ..
TDialog
TMDialog
--TDataAwareDialog
--TObjectEditDialog
- TContactEditDialog
так далее..
--TObjectSelectDialog
--TContactSelectDialog
и т.д ...
Когда я добавляю новый объект для управления, это может быть новым атрибутом клиентов, скажем, мы хотим отслеживать, какие транспортные средства принадлежат клиенту.
создать таблицу CustomerVehicles
Я запускаю свой специальный генератор sproc, который создает мои SEL, GET, UPD, DEL
проверить эти ...
Получите из базовых классов, которые я упоминал выше, пропустите некоторые элементы управления Добавьте вкладку в TCustomerEdit.
Delphi всегда имеет набор данных в качестве абстрактного слоя, предоставьте его своему графическому интерфейсу через источники данных. Добавьте набор данных в модуль данных клиента и «зарегистрируйте его». Моя собственная пользовательская функция в моем производном классе модулей данных, TMDataModule
Управление безопасностью аналогичным образом осуществляется во фреймворке. Я регистрирую компоненты, которые требуют, чтобы флаг безопасности был видимым или активированным.
Обычно я могу добавить новый объект, построить sprocs, добавить экраны обслуживания в течение часа.
Конечно, это обычно только начало, обычно, когда вы добавляете что-то, вы используете это не только для отслеживания. Если это приложение для гаража, мы хотим добавить транспортное средство, которое клиент привез в гараж, идентифицировать его, чтобы мы могли отслеживать историю. Но даже так, это быстро.
Я пытался заключать субконтракты с молодыми парнями, используя «новые инструменты разработки», и они, кажется, никогда не верят мне, когда я говорю, что могу сделать это в десять раз быстрее с Delphi! Я могу сделать за два часа без ошибок, что, по-видимому, занимает у них два дня, и у них все еще есть ошибки ...
DO - Будьте осторожны, планируя свою VFI! Как уже упоминалось, если вы хотите изменить имя компонента в одном из ваших родительских классов, будьте готовы к неприятностям. Вам нужно будет открыть и «отредактировать» каждого дочернего элемента в иерархии, даже если вы очистите DCU, у вас все равно может быть ад DFM. Уверяю вас, в 2006 году это все еще проблема.
НЕ создавайте один модуль данных монстров
Не спешите с предварительным дизайном, рефакторинг после того, как вы создали тонну иждивенцев, может быть веселым испытанием, но кошмаром, когда вам нужно, чтобы что-то новое заработало быстро!