Использование класса интерпозера с компонентами TFDTable, которые помечены как активные во время разработки - PullRequest
0 голосов
/ 16 июня 2020

Следуя моему предыдущему вопросу ( Как определить класс с опубликованным методом в отдельном модуле, который доступен во время разработки для других модулей? ), я использую класс интерпозера для TFDtable, как было предложено Реми Лебо и переопределив процедуру DoBeforeOpen, чтобы установить свойство CatalogName перед передачей в унаследованный метод.

Однако событие BeforeOpen, очевидно, срабатывает только при c открытии таблицы. Для таблицы, определенной как активная во время разработки, это событие не запускается, и из-за недавно появившейся ошибки TFDtable (Delphi TFDTable open завершается неудачно, если indexname установлено ), может быть сгенерировано исключение (если indexname задано, а в имени БД есть пробелы / дефисы). Итак, мне нужно определить метод, который я могу переопределить, который позволил бы мне установить имя каталога до того, как таблица будет открыта изнутри.

Переопределение процедуры Loaded, чтобы она установила имя каталога, а затем унаследованное logi c, похоже, работает, но я был бы признателен за некоторые комментарии относительно наилучшего подхода.

...